ModelState.AddModelError替代方案

时间:2012-03-30 09:39:15

标签: asp.net-mvc-3

我正在使用ModelState.AddModelError在Model未通过验证时向用户显示错误消息。验证通过时,显示信息消息的最佳方法是什么?我不想添加其他HTML元素。我可以使用ModelState对象发送信息消息吗?

2 个答案:

答案 0 :(得分:0)

您可以测试模型是否有效并显示相应的消息

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

显然,即使您第一次到达页面时也不希望它始终显示,您可以使用其他视图模型布尔属性来指示是否要显示消息。然后在POST操作内部,当所有内容都通过验证并在视图中时,将其值设置为true:

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

答案 1 :(得分:0)

我构建了一个PartialView来显示成功帖子。 它靠近Html.ValidationSummary()。

当ModelState有效时,我使用IsValid消息来估计TempData变量,所以在我的视图中我有这个:

@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消息。