Сводка проверки в MVC3, объединяющая предопределенные ошибки и ошибки ModelState - PullRequest
1 голос
/ 11 января 2012

У меня проблемы с пониманием того, как наилучшим образом реализовать ненавязчивую проверку на стороне клиента, которая работает вместе с ошибками, добавленными в контроллер с помощью ModelState.AddModelError().

Итак, это текущий код:

@Html.ValidationSummary(true)
@Html.ValidationMessageFor(model => model.FirstName)
@Html.ValidationMessageFor(model => model.LastName)

Сообщение об ошибке будет правильно отображаться, если я опущу имя.Если я ввожу имя и вкладку, сообщение исчезнет - как и должно работать.

Когда не существует ошибки клиента, и я могу отправить эту форму, я должен проверить базу данных, которую не сделал пользовательуже существуетЕсли это так, я добавляю ошибку с:

ModelState.AddModelError("", "User already exists")

При возврате модели отображается окно ошибки, но там нет сообщения.

Еслия изменяю @Html.ValidationSummary(true) на @Html.ValidationSummary(false) Я увижу сообщение об ошибке, возвращаемое с моделью. (Редактировать: комментарий Яна решил эту часть)

Проблема теперь в том,что вся проверка клиента будет продублирована и показана в двух разных местах.

Кроме того, я хотел бы, чтобы ошибки отображались в одном и том же месте / div.Как и сейчас, это будут две разные сводки проверки.

Как-нибудь обойти это?

1 Ответ

0 голосов
/ 11 января 2012

Проверка, которую вы установили рядом с текстовыми полями, вы можете установить текст @Html.ValidationMessageFor(model => model.LastName) на @Html.ValidationMessageFor(model => model.LastName, "").Или, если вы хотите добавить «*», если хотите.Тогда у вас не будет сообщения рядом с вашим текстовым полем.

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