如何在asp.net mvc中使用jquery设置@ Html.EditorFor的值

时间:2013-06-27 05:18:51

标签: asp.net-mvc asp.net-mvc-4

我想使用jquery设置输入文本的值。我试过这样做:

    <div class="editor-label">
        @Html.LabelFor(model => model.ID )
    </div>
    <div class="editor-field">
        @Html.EditorFor(model => model.ID)
        @Html.ValidationMessageFor(model => model.ID)
    </div>

和jquery语法:

    $("#ID").val(data.ID);

但它不起作用。我用这个尝试了相同的jquery代码:

<input type="text" id="ID" />

这种方法有效,但我不知道为什么@ Html.EditorFor不能使用jquery。提前谢谢

4 个答案:

答案 0 :(得分:3)

最好使用TextBoxFor方法,因为它允许您直接更改元素的id和类,而EditorFor则不会,除非您为它创建自定义编辑状态(使用EditorTemplate)。

@Html.TextBoxFor(model => model.ID, new { id = "ID" })

我相信@Html.EditorFor(model => model.ID)会设置name属性,因为mvc依赖它来进行模型绑定,所以如果上面的内容不符合您的喜好,您可以使用该名称作为选择器。

答案 1 :(得分:2)

您可以在@id上添加@classEditorFor等,如下所示:

@Html.EditorFor(model => model.ID, new {htmlAttributes = new {@id="someid"}})

答案 2 :(得分:1)

这对我有用

<div class="editor-field">
    @Html.EditorFor(model => model.ID)
    @Html.ValidationMessageFor(model => model.ID)
</div>

<div class="editor-field">
    @Html.EditorFor(model => model.SetID)
    @Html.ValidationMessageFor(model => model.SetID)
</div>

和javascript是

var d = $("#ID ").val();
$("#SetID").val(d);  

$("#SetID").val($("#ID ").val());

答案 3 :(得分:0)

你应该使用

@Html.EditorFor(model => model.ID, new {@id="someid"})

然后

$("#someid").val (someval)