Вот как работает проверка.
Допустим, у вас есть следующая модель:
public class MyModel {
[Required]
public string MyProperty { get; set; }
}
Обратите внимание на атрибут Required
, это аннотация данныхатрибут, который указывает, что MyProperty
является обязательным полем.
MyModel
используется следующим представлением ( MyView.cshtml ):
@model MyNamespace.MyModel
@using (Html.BeginForm("MyAction", "MyController")) {
@Html.LabelFor(m => m.MyProperty)
@Html.TextBoxFor(m => m.MyProperty)
@Html.ValidationMessageFor(m => m.MyProperty)
<input type="submit" value="Click me">
}
Тогда,когда эта форма будет опубликована для действия MyAction
, указанного в MyController
, будет выполнена проверка вашей модели.Что вам нужно сделать, это проверить, является ли ваша модель действительным или нет.Это можно сделать с помощью свойства ModelState.IsValid
.
[HttpPost]
public ActionResult MyAction(MyModel model) {
if (ModelState.IsValid) {
// save to db, for instance
return RedirectToAction("AnotherAction");
}
// model is not valid
return View("MyView", model);
}
Если проверка не удалась, представление будет отображено снова с использованием различных ошибок, присутствующих в объекте ModelState
.Эти ошибки будут использоваться и отображаться помощником ValidationMessageFor
.