使用JavaScript获取@ Html.HiddenFor VALUE?

时间:2017-09-25 15:08:28

标签: javascript jquery asp.net asp.net-mvc razor

我有一个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" })

1 个答案:

答案 0 :(得分:1)

您可以使用属性名称并使用jquery val()方法选择隐藏输入标记的value属性。

$("#id").val(id); // id in $("#id") 

您应该使用$("#id"),因为您使用了model.id。第二个idvar id = $(this).attr("id");,如果id中的model.id是唯一的,您只需要这样的剃刀代码:

@Html.HiddenFor(model => model.id)