Валидация модели на сервере в целях безопасности¶
Валидация модели привязки происходит до выполнения обработчика страницы, однако обработчик выполняется независимо от результата валидации. Обработчик страницы должен проверить результат.
Razor Pages сохраняет выходные данные попытки валидации модели в свойстве PageModel.ModelState. Это объект класса ModelStateDictionary, содержащий список возникших ошибок валидации и некоторые служебные свойства.
Пример.
public class CheckoutModel : PageModel
{
[BindProperty]
public UserBindingModel Input { get; set; }
public IActionResult OnPost()
{
if(!ModelState.IsValid)
{
return Page();
}
/*Сохранение в БД, обновление пользователя*/
return RedirectToPage("Success");
}
}
Если появились ошибки валидации, мы просто показываем пользователю страницу, дополненную сообщениями об ошибках. Сообщения можно настраивать, задавая свойство
ErrorMessage атрибута. Например, для [Required]: [Required(ErrorMessage="Required")].
В случае успешной валидации мы перенаправляем пользователя на страницу с сообщением об успехе. Это пример реализации шаблона POST-REDIRECT-GET.
Последнее обновление :
23 сентября 2022 г.
Дата создания : 23 сентября 2022 г.
Дата создания : 23 сентября 2022 г.