Я пытаюсь отобразить ошибки проверки с использованием встроенной системы проверки MVC. Я использую следующий код для моего контроллера:Отображение ошибок проверки с использованием MVC
[HttpPost]
public ActionResult SaveApplication(ApplicationModel application)
{
if (!ModelState.IsValid)
{
return View("New",application);
}
ApplicationBLL.SaveApplication(application);
return Content(string.Empty);
}
Хотя мой взгляд выглядит следующим образом:
<tr>
<td>Name</td>
@Html.ValidationSummary(true)
<td>@Html.TextBoxFor(m => m.Name)</td>
<td>@Html.ValidationMessageFor(m => m.Name, "Name is required")</td>
</tr>
Ниже показано, как класс модели выглядит следующим образом:
public class ApplicationModel
{
public int ApplicationId { get; set; }
public string ApplicationNumber { get; set; }
[Required]
public string Name { get; set; }
public DateTime EventDate { get; set; }
public string EventAddress { get; set; }
}
Моя модель имеет [ Обязательный параметр] проверка на свойство имени и когда я помещаю отладчик на свой контроллер, он распознает, что ModelState недействителен и возвращается обратно в представление, но я делаю n если на моей странице не обнаружены ошибки. Возможно, мне не хватает чего-то очень тривиального, так как это мой первый раз, используя структуру проверки MVC.
Одна вещь, которую я хотел бы добавить, это то, что я вызываю контроллер с Ajax Post Может ли это способствовать этой аномалии?
Не уверен, что ваш запрашиваемым. Вы указали сообщение проверки в представлении (в качестве «Имя требуется»), которое будет отображаться. Ожидаете ли вы «Это тест»? –
Я удалил код контроллера, добавив пользовательскую ошибку. Спасибо, что указал, это было странно. Моя проблема заключается в том, что на представлении ничего не появляется, когда я ожидаю, что ошибка с подтверждением не должна отображаться где-то на странице. – TeaLeave
Украсить ваше свойство 'Обязательным (ErrorMessage =" Name required ")] public string Name {get; задавать; } 'В представлении используйте только' @ Html.ValidationMessageFor (m => m.Name) 'и в контроллере просто' if (! ModelState.IsValid) {return View (application); } '. Если вы отправите форму без текста в элементе управления Name, вы увидите сообщение об ошибке (и если проверка на стороне клиента включена и включенные скрипты - сообщение будет отображаться, и оно даже не будет отправлено) –