我正在从控制器向我的ModelState
添加一些错误消息,以便我可以在我的视图中显示它。我的代码是这样的
ModelState.AddModelError(key: "MyError", errorMessage: "This phone number is already in use. Please register with a different phone number.");
在我看来,我正在显示它
foreach (ModelState modelState in ViewData.ModelState.Values)
{
var errors = modelState.Errors;
if (errors.Any())
{
foreach (ModelError error in errors)
{
<p class="common-error">@error.ErrorMessage</p>
}
}
}
这种方法的一个问题是,它显示所有类型的ModelState
错误,我只希望用密钥MyError
显示错误消息。我该怎么做?
答案 0 :(得分:3)
您可以迭代这样的键:
foreach (var modelStateKey in ViewData.ModelState.Keys)
{
//decide if you want to show it or not...
//...
var value = ViewData.ModelState[modelStateKey];
foreach (var error in value.Errors)
{
//present it
//...
}
}
答案 1 :(得分:0)
您可以添加@Html.ValidationSummary(true, "", new { @class = "some_error_class" })
以自动显示模型状态的验证消息。
您可以在@Html.BeginForm({...}) {
调用之后添加它,包含在div中。
true
参数也会显示控件错误,并将其设置为false
以仅显示如下定义的错误:ModelState.AddModelError("", "My custom error message");