Как предоставить полезное сообщение об ошибке в ValidationSummary для неверного ввода пользователя? - PullRequest
0 голосов
/ 06 апреля 2009

Сценарий: пользователь вводит строку в поле DateTime. * Появляется, когда происходит обратная передача, но в ValidationSummary нет сообщений. Я пытался реализовать IDataErrorInfo, но код никогда не падает через IDataErrorInfo.this [string columnName] для поля EventDate. Я попытался реализовать атрибуты DataAnnotations снова, это не работает. К тому времени, когда код достигает атрибута, проверяется, что EventDate была изменена на DateTime.MinValue средой.

Любая помощь с благодарностью получена.

Я отправил те же вопросы на форумах ASP.Net MVC, Стиву Сандерсону, Стивену Уолтеру и Шотайму, но ответов нет, поэтому, кто бы это ни исправил, это мастер MVC.

Просмотр:

<%= Html.ValidationSummary() %>
<label for="EventDate">EventDate:</label>
<%=Html.TextBox("Dinner", Model.EventDate)%>
<%= Html.ValidationMessage("EventDate", "*") %>

Контроллер:

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Edit(Dinner item)
public ActionResult Edit(int ID, FormCollection coll)
{
    //What would you recommend?
}

Ответы [ 2 ]

0 голосов
/ 07 апреля 2009

Ответ приходит в виде нового образца подшивки модели аннотаций данных, предоставленного Microsoft по адресу http://aspnet.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=24471.

Теперь в сводке проверки будут отображаться недопустимые значения.

Надеюсь, это войдет в релиз ASP.Net MVC 1.01.

Сообщение об ошибке жестко запрограммировано в DLL, поэтому я предложил создать новый атрибут ValidationAttribute, в котором вы можете указать свое собственное сообщение. Узнайте больше здесь. http://forums.asp.net/t/1406636.aspx

0 голосов
/ 06 апреля 2009

Если вы используете первую сигнатуру метода, которая принимает объект Dinner, и вы добавляете, измените текстовое поле, чтобы отразить имя свойства ...

<%= Html.TextBox("Dinner.EventDate", Model.EventDate) %>

и ваше сообщение для проверки ...

<%= Html.ValidationMessage("Dinner.EventDate", "*") %>

Это должно сработать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...