ValidationMessageFor не возвращает никакой информации при вызове modelState.AddModelStateError - PullRequest
2 голосов
/ 21 октября 2010

Я создал класс, который реализует интерфейс IModelBinder.Внутри метода этого класса я в основном получаю некоторые значения и пытаюсь их проверить.Если проверка не пройдена, я добавляю обновление состояния модели с необходимой информацией, как показано ниже:

        DateTime mydate;
        if (!DateTime.TryParse(convValue,out mydate))
        {
            bindingContext.ModelState.AddModelError("Date", "Date was crap");
        }

Проблема в том, что Html.ValidationMessageFor (m => m.Model) не возвращает значения.Я посмотрел исходный код MVC и обнаружил, что в словаре ModelState не найден правильный ключ с идентификатором «Date».

Почему это так?Контроллер, который возвращает представление, имеет доступ к состоянию модели и может перечислять по ModelState.Errors

Спасибо, Томас

1 Ответ

0 голосов
/ 27 сентября 2011

Является ли «Дата» названием недвижимости, которую вы проверяете?

Первый параметр ModelState.AddModelError должен быть либо именем свойства, для которого должно отображаться сообщение проверки, либо оставить его в виде строки. Пустой, если вы хотите, чтобы ошибка отображалась только в сводке проверки.

Если вы хотите отобразить сообщение об ошибке, которое не связано с определенным свойством вашей модели представления, вы можете вызвать <%: Html.ValidationMessage ("Date")%> в вашем представлении, чтобы отобразить это конкретное сообщение, если был установлен.

Редактировать: только что понял, сколько лет этому вопросу. Ну, в любом случае, может пригодиться ...

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