@{
int a = 0;
}
<script>
var b = ...
@a = b;
</script>
@{
int a = 0;
}
<script>
var b = ...
@a = b;
</script>
但如果@html.Hidden字段中使用一个常量来代替变量,则这是可能的。
例如,像这个例子一样。@Html.Hidden("myVar", 0);
使用脚本设置字段:
<script>
function setMyValue(value) {
$('#myVar').val(value);
}
</script>
我希望至少能提供一个不小的解决方法。
@HtmlAction("ActionName", "myVar")
在 HTML 中,@Html.Hidden
相当于 <input type="hidden" value=0 id="myVar"/>
。
参见 如何设置和获取ASP.net MVC Hidden Field值。 - Carsten Cors$('#myVar').val();
- Richnau好的,这个问题可能有一些旧了...但我想做类似的事情,并找到了适合我的解决方案。也许它可以帮助其他人。
我有一个 List<QuestionType>
,我用它填充下拉列表。我想把选择的值放入正在创建的表单中的 Question
对象的 QuestionType
属性中。我在使用 Knockout.js
进行选择绑定。当用户选择其中一个选项时,这会将 self.QuestionType
knockout 可观察属性设置为一个 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)
在可观察对象的订阅中,我将隐藏字段设置为对象的JSON.stringify
版本。
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
,否则它将仅使用后备字段中的内容。
我基本上在不使用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 })
}
$http({
method: 'Get',
url: "https://xxxxxxx.azurewebsites.net/api/quantity/" + usr
})
.success(function (data){
setQuantity(data.number);
function setQuantity(number) {
$('#quantity').val(number);
}
});
我看到这个问题在一段时间前已经讨论过了,但如果有人再次遇到这个问题,这是我的解决方案:
在您的*.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>
<label for="stringName" class="cols-sm-2 control-
label">@Html.Hidden("stringName", "")</label>
步骤:2 Javascript
$('#stringName').replaceWith(localStorage.getItem("itemName"));
当然可以
Asp.net MVC razor
我有两个输入
<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';
StringMSG += (" Total: ");
StringMSG += $('#TXTTOTal').val();
alert(StringMSG);
this.href = this.href.replace("xxx", StringMSG);
});
</script>
我正在将脚本值和模型值传递给C#字符串
使用@符号可以在服务器端读取Razor视图中的变量,而在客户端JavaScript中使用While和JavaScript客户端变量可以在Razor视图中使用@符号进行读取:
@if ($(this).width() > 100) { ... }
- user4208535