我有一个JavaScript函数,可以在鼠标单击一个单选复选框时设置ViewBag值。我正在尝试在我的表单上的隐藏字段中提交ViewBag。
我的JavaScript函数成功获取了id。但是我无法将这个价值变成我隐藏的形式。我认为我的第一个问题是当我使用不同的类型时,我正在使用ViewBag。但这是我希望得到一些帮助的地方。如何在JavaScript中设置一个值并在@Html.HiddenFor()中获取它?
$(document).ready(function () {
$('body').on('mouseup', 'td', function (e) {
e.preventDefault();
var id = $(this).attr("id");
@Html.Raw(Json.Encode(ViewBag.id)) = id;
});
});
@Html.HiddenFor(model => model.id, new {id = "id", Value = @Html.Raw(Json.Encode(ViewBag.id)) })
***更新以下工作溶液****
我将@Ali Soltani解决方案标记为正确答案。他的回答引导我朝着正确的方向前进。这是我的完整工作代码:
$(document).ready(function () {
$('body').on('mouseup', 'td', function (e) {
e.preventDefault();
var id = parseInt($(this).attr("id"));
$("#Id").val(id);
});
});
形式:
@Html.HiddenFor(model => model.id, new { id = "Id" })
答案 0 :(得分:1)
您可以使用属性名称并使用jquery val()方法选择隐藏输入标记的value属性。
$("#id").val(id); // id in $("#id")
您应该使用$("#id")
,因为您使用了model.id
。第二个id
是var id = $(this).attr("id");
,如果id
中的model.id
是唯一的,您只需要这样的剃刀代码:
@Html.HiddenFor(model => model.id)