Что такое явная валидация модели? Приведите какой-нибудь пример такой валидации.



Клиент жақтағы валидациямен бірге біз контроллердің ішінде де валидацияны жасауымызға болады. Ол ModelState.Is Valid қасиетінің мәнін тексеру арқылы жүреді.

ModelState объектісі клиенттің модельдің қасиеттеріне байланысты жазған барлық мәндерді және қателерді сақтайды. Егер ModelState-та қандай да бір қате болса, онда ModelState.IsValid false мәнін қайтарады:

[HttpPost]

public ActionResult Create(Book book)

{

if (ModelState.IsValid)

{

ViewBag.Message = "Valid";

db.Books.Add(book);

db.SaveChanges();

return RedirectToAction("Index");

}

ViewBag.Message = "Non Valid";

return View(book);

}

Мысалы бізде Name өрісі бос болсын, онда қасиетке Required атрибуты меншікті болғандықтан валидациядан кейін келесі нәтижені аламыз

ModelState.IsValid == false

ModelState.IsValidField("Name") == false

ModelState["Name"].Errors.Count > 0

Сонымен қатар біз модельдің жеке қасиеттеріне де валидация жасауымызға болады:

[HttpPost]

public ActionResult Create(Book book)

{

if (string.IsNullOrEmpty(book.Name))

{

ModelState.AddModelError("Name", "Некорректное название книги");

}

else if (book.Name.Length > 5)

{

ModelState.AddModelError("Name", "Недопустимая длина строки");

}

 

if (ModelState.IsValid)

{

ViewBag.Message = "Валидация пройдена";

db.Books.Add(book);

db.SaveChanges();

return RedirectToAction("Index");

}

 

ViewBag.Message = "Запрос не прошел валидацию";

return View(book);

}


Дата добавления: 2018-02-15; просмотров: 168; ЗАКАЗАТЬ РАБОТУ