Я написал собственный обработчик проверки для этого приложения ASP.NET MVC. Вот скриншот сообщений проверки:
Как видите, название и режиссер работают нормально, а дата - нет. Код, который я имею для представления Create:
<fieldset>
<legend>Fields</legend>
<p>
<%= Html.Label("Title", "Title:") %>
<%= Html.TextBox("Title") %>
<%= Html.ValidationMessage("Title", "*") %>
</p>
<p>
<%= Html.Label("Director", "Director:")%>
<%= Html.TextBox("Director") %>
<%= Html.ValidationMessage("Director", "*") %>
</p>
<p>
<%= Html.Label("ReleaseDate", "Release Date:")%>
<%= Html.TextBox("ReleaseDate") %>
<%= Html.ValidationMessage("ReleaseDate", "*") %>
</p>
<p>
<%= Html.Submit("Create") %>
</p>
</fieldset>
и вот код, который обрабатывает логику проверки:
public bool ValidateMovie(Movie movieToValidate)
{
if (movieToValidate.Title.Trim().Length == 0)
_validationDictionary.AddError("Title", "Title is required.");
if (movieToValidate.Director.Trim().Length == 0)
_validationDictionary.AddError("Director", "Director is required.");
if (movieToValidate.ReleaseDate.ToString().Trim().Length == 0)
_validationDictionary.AddError("ReleaseDate", "Release Date is required.");
return _validationDictionary.IsValid;
}
Я предположил, что значение ключа для словаря проверки должно соответствовать значению, которое предоставляется для поля (в данном случае ReleaseDate), но, похоже, для меня это не происходит. Я также попытался добавить пробел между словами, если он искал его по отображаемому имени, но там тоже не повезло.
Может кто-нибудь помочь мне в этом?
Редактировать
Следуя предложению Джозефа , я прошелся по приложению, чтобы посмотреть, где произошла другая ошибка проверки. К сожалению, я не нашел никаких подсказок ... по крайней мере, для меня очевидно. Вот скриншот моего окна просмотра:
Как и ожидалось, здесь есть три ключа: название, каталог и дата выпуска. Никаких признаков четвертой (третьей в списке? См. Первый скриншот) ошибки проверки.
Любые дополнительные предложения будут оценены! Спасибо!