Вот пример того, как это работает.Вы начинаете с определения модели, которая будет содержать свойства, украшенные атрибутами, указывающими различные правила проверки:
public class PersonViewModel
{
[Required(ErrorMessage = "The first name is required")]
public string FirstName { get; set; }
[Required(ErrorMessage = "The last name is required")]
public string LastName { get; set; }
}
, затем контроллер:
public class HomeController : Controller
{
public ActionResult Index()
{
return View(new PersonViewModel());
}
[HttpPost]
public ActionResult Index(PersonViewModel model)
{
return View(model);
}
}
и, наконец, представление:
@model AppName.Models.PersonViewModel
@{
ViewBag.Title = "Home Page";
}
<script src="@Url.Content("~/Scripts/jquery.validate.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.js")" type="text/javascript"></script>
@using (Html.BeginForm())
{
<div>
@Html.LabelFor(x => x.FirstName)
@Html.TextBoxFor(x => x.FirstName)
@Html.ValidationMessageFor(x => x.FirstName)
</div>
<div>
@Html.LabelFor(x => x.LastName)
@Html.TextBoxFor(x => x.LastName)
@Html.ValidationMessageFor(x => x.LastName)
</div>
<input type="submit" value="OK" />
}
Html-помощники, используемые для генерации соответствующих полей формы в представлении, будут использовать атрибуты HTML5 data-*
для перевода правил проверки вашей модели.Затем, просто включив сценарии jquery.validate.js
и jquery.validate.unobtrusive.js
на вашу страницу, эти правила будут применены при попытке отправить форму.