如何在jquery中引用/访问强类型Html Helper?

时间:2010-09-04 18:26:12

标签: jquery asp.net-mvc asp.net-mvc-2 jquery-validate

我主要在MVC1工作。我现在正在使用一些MVC2代码。我有强类型Html助手的字段,如:

        <div class="editor-field">
            <%: Html.TextBoxFor(model => model.Contract.client_name)%>
            <%: Html.ValidationMessageFor(model => model.Contract.client_name) %>
        </div>

如何在jquery中访问此字段?我以前会:

$('#client_name').val();

或在jquery .validate:

$('form').validate({
            rules: {
                client_name: "required"
            },
            messages: {
                client_name: "Client Name is required"
            }
});

2 个答案:

答案 0 :(得分:2)

达林的答案有效,但还有更好的方法。在MVC Futures assembly中只有HtmlHelper扩展方法。

$('#<%: Html.IdFor(m => m.Contract.client_name) %>').val();

验证更新:

$('form').validate({
    rules: {
        '<%:Html.IdFor(m => m.Contract.client_name) %>': { required : true }
    },
    messages: {
        '<%:Html.IdFor(m => m.Contract.client_name) %>': { required: "Client Name is required" }
    }
});

我从未使用过这个,但我不确定它是否需要该元素的id或名称。如果是名称,请改用Html.NameFor()

答案 1 :(得分:1)

你有几个选择:

使用类选择器。

对于.validate你可以试试这个:

$('form').validate({
    rules: {
        'Contract.client_name': "required"
    },
    messages: {
        'Contract.client_name': "Client Name is required"
    }
});

或只是覆盖id:

<%: Html.TextBoxFor(model => model.Contract.client_name, new { id = "client_name" })%>
相关问题