2013-05-12 4 views
3

У меня есть стандартная форма, заполненная моделью MVC со стандартной [обязательной] проверкой. Я хочу «отправить» данные этой формы через AJAX, а не через submit, и я хотел бы воспользоваться встроенными функциями проверки MVC/бритвы. Я не могу понять, как запустить проверку на стороне клиента, не вызывая событие отправки формы.Проверка формы MVC без отправки формы

Вот моя бритва разметка:

@using (Html.BeginForm()) { 
    <span class="label">Team Name:</span>&nbsp;@Html.TextBoxFor(m => m.Name}) 
    @Html.ValidationMessageFor(m => m.Name) 

А вот моя модель:

public class Team 
{ 
    [Required(ErrorMessage = "Required")] 
    public string Name { get; set; } 

Похоже, что это должно быть легко сделать. Он прекрасно работает на submit. Мне просто нужно знать, как вызвать метод проверки вручную.

+0

[См. Это] (http://docs.jquery.com/Plugins/Validation/Validator/showErrors#errors) – gdoron

ответ

3

Эта функция включена по умолчанию, но она не работает, потому что вы, возможно, не добавили ссылки на необходимые библиотеки JavaScript.

<script src="~/Scripts/jquery-1.7.1.js"></script> 
<script src="~/Scripts/jquery.validate.min.js"></script> 
<script src="~/Scripts/jquery.validate.unobtrusive.min.js"></script> 
+0

Возможно, вы получаете подтверждение на стороне сервера. Если у вас нет сценариев jquery.validate, вы не получите проверку на стороне клиента. $ ('form'). submit() также должно инициировать проверку на стороне клиента. – user619656

+0

ugh, я должен был знать, все было так просто. Все мои формы, которые я представляю, имеют эти библиотеки; те, которые представлены через Ajax, не хватали их ... Спасибо! – iGanja

2

Поскольку это верхний ответ, когда вы Google для «формы проверки MVC представить» Я должен добавить еще один момент, который мне берег через несколько часов. При использовании

@Html.ValidationSummary() 

в вашем коде, форма получить занесена-х, даже если вы добавили эти библиотеки и установить

<add key="ClientValidationEnabled" value="true" /> 
<add key="UnobtrusiveJavaScriptEnabled" value="true" /> 

в свойстве AppSettings вашего WebConfig.

Смежные вопросы