Я снова борюсь за проверку входных данных.
Допустим, я редактирую клиента, и поле "имя" требуется через
[Required(ErrorMessage = Constants.ErrorMsgNameMissing)]
public string NAME { get; set; }
внутри модели.
Метод редактирования делает
[HttpPost]
edit(ViewModel vm)
{
// some code here
try
{
UpdateModel(vm);
// some code there
}
catch (Exception e)
{
return View(vm);
}
}
При выполнении UpdateModel(vm)
выдается исключение, если имя пустое. Затем мой взгляд показывает Html.ValidationSummary (). Пока все хорошо.
Теперь, если я создам клиента через
[HttpPost]
create(ViewModel vm)
{
if (ModelState.IsValid) { ... }
}
У меня нет метода UpdateModel()
, так как обновлять нечего. И ModelState.IsValid
, кажется, возвращает true
каждый раз. Даже если ViewModel является нулевым. Так что у меня тогда проблемы.
Как мне это проверить? И что мне вернуть в случае ошибок?
Обновление: Я думаю, что было слишком поздно вчера. На самом деле, это работает. Но я надеялся на исключение и забыл else { ... }
...