Альтернатива ModelState.AddModelError - PullRequest
1 голос
/ 30 марта 2012

Я использую ModelState.AddModelError для отображения сообщения об ошибке пользователю, когда Модель не проходит проверку. Каков наилучший метод отображения информационного сообщения при прохождении проверки. Я не хочу добавлять дополнительные элементы HTML. Могу ли я использовать объект ModelState для отправки информационных сообщений?

Ответы [ 2 ]

0 голосов
/ 30 марта 2012

Я создал PartialView для отображения успешных сообщений. Он находится рядом с Html.ValidationSummary ().

Когда ModelState является действительным, я присваиваю значение переменной TempData сообщению IsValid, поэтому в моем представлении есть следующее:

@Html.ValidationSummary()

@if (ViewData.ModelState.IsValid && TempData["ModelIsValidMsg"] != null)
{ 
    @Html.Partial("PostSuccess", TempData["ModelIsValidMsg"])
}

В моем контроллере:

if (ModelState.IsValid)
{
    TempData["ModelIsValidMsg"] = "Your success msg";
}
else
{
    ModelState.AddModelError("Your error msg");
}

Внутри PartialView я отображаю сообщение TempData.

0 голосов
/ 30 марта 2012

Вы можете проверить, является ли модель действительной, и отобразить соответствующее сообщение.

@if (ViewData.ModelState.IsValid)
{
    <div>Your model is valid</div>
}

Очевидно, что если вы не хотите, чтобы это отображалось постоянно, даже когда вы впервые заходите на страницу, вы можете использоватьдополнительное логическое свойство модели представления, чтобы указать, хотите ли вы отобразить сообщение или нет.Затем внутри действия POST установите его значение равным true, когда все пройдет проверку и в представлении:

@if (Model.ShouldShowSuccess && ViewData.ModelState.IsValid)
{
    <div>Your model is valid</div>
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...