2012-03-30 2 views
1

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

ответ

0

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

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

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

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

Я построил 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.