Как мне обратиться / получить доступ к хелперу Html со строгой типизацией в jquery? - PullRequest
2 голосов
/ 04 сентября 2010

Я в основном работал в 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. Валидат:

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

Ответы [ 2 ]

2 голосов
/ 04 сентября 2010

Ответ Дарина работает, но есть лучший способ сделать это. в сборке MVC Futures для этого есть 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" }
    }
});

Я никогда не использовал это, и я не уверен, хочет ли он идентификатор или имя элемента. Если это имя, используйте Html.NameFor().

1 голос
/ 04 сентября 2010

У вас есть несколько вариантов здесь:

Используйте селектор класса.

Для .validate вы можете попробовать это:

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

или просто переопределить идентификатор:

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