Если вы хотите:
- Использовать проверку модели .NET (атрибуты аннотаций данных)
- Использовать атрибуты данных html5 вместо несемантических классов CSS
Вам нужны оба: jquery.validate И jquery.validate.unobtrusive
Ссылки на сценарии:
Примечание. В этом примере файлы js находятся в папке "public" в проекте / сайте, но вы по возможности используете Microsoft с адресами CDN Google.
<script src="@Url.Content("~/public/js/libs/jquery.validate.min.js")"></script>
<script src="@Url.Content("~/public/js/libs/jquery.validate.unobtrusive.min.js")"></script>
Модель:
public class PimpModel
{
[Required]
[StringLength(20)]
[DisplayName("Pimp Name")]
public string PimpName { get; set; }
}
Настройки Web.config
<appSettings>
<add key="ClientValidationEnabled" value="true"/>
<add key="UnobtrusiveJavaScriptEnabled" value="true"/>
</appSettings>
Посмотреть код формы
@model SomeProject.Models.PimpModel
@{
View.Title = "Index";
Layout = "~/Views/Shared/_Layout.cshtml";
Html.EnableUnobtrusiveJavaScript(true);
}
<h2>Pimp</h2>
@using (Html.BeginForm()) {
@Html.ValidationSummary(true)
<fieldset>
@Html.ValidationMessageFor(model => model.PimpName)
<div class="editor-label">
@Html.LabelFor(model => model.PimpName)
</div>
<div class="editor-field">
@Html.TextBoxFor(model => model.PimpName)
</div>
<input type="submit" value="Save"></fieldset>
}
Помощники html генерируют атрибуты данных в виде html, которые используются ненавязчивой библиотекой, ненавязчивая библиотека использует функции в библиотеке валидации, и это все счастливые дни ...