![]() |
细心的打火机 · “百模大战”打响,我们究竟需要什么样的大模型· 2 月前 · |
![]() |
谦和的跑步鞋 · XamlReader Class ...· 10 月前 · |
![]() |
千杯不醉的红豆 · vue项目中使用axios获取本地json文 ...· 1 年前 · |
![]() |
坚强的打火机 · 关于“服务器提交了协议冲突. ...· 1 年前 · |
![]() |
苦恼的洋葱 · 使用Docker ...· 1 年前 · |
如何从javascript变量中传递一个值给razor变量,有没有可能是asp.net mvc razor视图引擎?
@{
int a = 0;
<script>
var b = ...
@a = b;
</script>
但是,如果在@html.Hidden字段中使用一个变量来代替变量,这是可能的。如本例所示。
@Html.Hidden("myVar", 0);
按脚本设置字段:
<script>
function setMyValue(value) {
$('#myVar').val(value);
</script>
我希望我至少能提供不小的变通方法。
我看到这个问题已经讨论了一段时间了,但是如果有人还会遇到这个问题,这是我的解决方案:
在*.cshtml视图文件中:
<script>
var data = JsFunction("@Html.Raw(Model.Path)");
$(function () {
$("#btn").click(function () {
var model = { Id: '@Html.Raw(Model.Id)', Data: data }
$.ajax({
type: "POST",
url: "/Controller/Action",
data: model,
datatype: "html",
success: function() {
console.log('Success');
</script>
JavaScript变量模型是我需要传递给Razor ViewModel的东西。这可以通过ajax请求来完成。你只需要在你的操作中有合适的参数,匹配在JavaScript中创建的Json对象。
希望它能帮助一些人!
步骤:1您的Html,首先使用javascript将值存储在本地存储中,然后添加如下行,这是您要在html中显示值的位置,我的示例基于boostrap:
<label for="stringName" class="cols-sm-2 control-
label">@Html.Hidden("stringName", "")</label>
第2步: Javascript
$('#stringName').replaceWith(localStorage.getItem("itemName"));
Razor View服务器端变量可以使用@ While读取到客户端JavaScript,而JavaScript客户端变量可以使用@:
好吧,这个问题很老了.但我想做一些类似的事情,我找到了一个适合我的解决方案。也许这对其他人有帮助。
我有一个
List<QuestionType>
,我用它填充一个下拉列表。我希望将该选择放入我在表单中创建的
Question
对象的
QuestionType
属性中。我使用
Knockout.js
进行select绑定。当用户选择一个对象时,这会将
self.QuestionType
敲出可观察属性设置为
QuestionType
对象。
<select class="form-control form-control-sm"
data-bind="options: QuestionTypes, optionsText: 'QuestionTypeText', value: QuestionType, optionsCaption: 'Choose...'">
</select>
我有一个隐藏的字段来保存这个对象:
@Html.Hidden("NewQuestion.QuestionTypeJson", Model.NewQuestion.QuestionTypeJson)
在observable的订阅中,我将隐藏字段设置为该对象的
JSON.stringify
-ed版本。
self.QuestionType.subscribe(function(newValue) {
if (newValue !== null && newValue !== undefined) {
document.getElementById('NewQuestion_QuestionTypeJson').value = JSON.stringify(newValue);
});
在
Question
对象中,有一个名为
QuestionTypeJson
的字段,该字段在用户选择问题类型时填充。我使用这个字段来获取
Question
对象中的
QuestionType
,如下所示:
public string QuestionTypeJson { get; set; }
private QuestionType _questionType = new QuestionType();
public QuestionType QuestionType
get => string.IsNullOrEmpty(QuestionTypeJson) ? _questionType : JsonConvert.DeserializeObject<QuestionType>(QuestionTypeJson);
set => _questionType = value;
}
因此,如果
QuestionTypeJson
字段包含某些内容,它将对其进行反序列化并将其用于
QuestionType
,否则它将只使用backing字段中的内容。
实际上,我在没有使用
Razor
或
Ajax
调用的情况下“传递”了一个JavaScript对象给我的模型。您可能不使用
Knockout.js
也可以做类似的事情,但这就是我要使用的,所以...
以下是我的解决方案:
在我的表单中,我使用:
@using (Html.BeginForm("RegisterOrder", "Account", FormMethod.Post, new { @class = "form", role = "form" }))
@Html.TextBoxFor(m => m.Email, new { @class = "form-control" })
@Html.HiddenFor(m => m.quantity, new { id = "quantity", Value = 0 })
}
在我的file.js中,我从get请求中获取数量,并将变量传递给表单,如下所示:
$http({
method: 'Get',
url: "https://xxxxxxx.azurewebsites.net/api/quantity/" + usr
.success(function (data){
setQuantity(data.number);
function setQuantity(number) {
$('#quantity').val(number);
});
是的,你可以
Asp.net MVC剃须刀
我有两个输入
<input id="TXTCount" type="number" readonly="readonly" class="form-control text-center text-bold" step="1" min="0" max="10000" value="1" inputmode="numeric" />
<input id="TXTTOTal" type="number" readonly="readonly" class="form-control text-center text-bold" step="1" min="0" max="10000" value="1" inputmode="numeric" />
视图中的C#
@{string WatsMSG = "xxx";}
和WhatsApp链接
<a class="btn btn-success" id="WatsSendApi" href="https://api.whatsapp.com/send?phone=0000&text=@WatsMSG">
<b class="text-black" style="font-size:small"> whatsapp </b><i class="fa fa-whatsapp" style="color:white"></i> </a>
在jQuery中
<script>
$("#WatsSendApi").click(function () {
var StringMSG;
StringMSG=("Ineed : ");
StringMSG += (" Item Name : ");
StringMSG +='@item.ITName' ;
StringMSG += (" Count: ");
StringMSG += $('#TXTCount').val();
StringMSG += (" Price: ");
StringMSG += '@item.ITPrice';
![]() |
细心的打火机 · “百模大战”打响,我们究竟需要什么样的大模型 2 月前 |