查看所有ModelState错误
在我的控制器中,我添加了一些ModelState错误。 因此,当我渲染我的视图时,我想要获取所有这些错误并更改包含错误的字段标签的颜色。查看所有ModelState错误
所以,我认为我需要得到所有的ModelState错误,得到字段名,然后改变颜色。这是一个好方法?
如何在我的视图中获取ModelState错误?
您可以通过ViewData.ModelState
访问它。 如果你需要对你的看法错误的更多的控制,你可以使用
ViewData.ModelState.IsValidField("name_of_input")
或得到的输入列表,像这样的错误:
var errors = ViewData.ModelState.Where(n => n.Value.Errors.Count > 0).ToList();
在我控制我添加一些的ModelState错误。所以,当我渲染我的 视图时,我想要获取所有这些错误并更改包含错误的字段的 标签的颜色。
如果您在模型状态中将模型错误与您在视图中使用的Html.ValidationMessageFor帮助器完全相同的键添加到模型错误中,那么会发生什么情况。
因此,例如,让我们假设你的表格你有下面的代码片段:
@Html.LabelFor(x => x.Bazinga)
@Html.EditorFor(x => x.Bazinga)
@Html.ValidationMessageFor(x => x.Bazinga)
,并在您HttpPost控制器操作,你可以为了突出Bazinga字段中添加以下错误消息:
ModelState.AddModelError("Bazinga", "Please enter a valid value for the Bazinga field");
如果你想添加这是不相关的一些特定的输入字段,你可以总是使用@Html.ValidationSummary()
助手在表单的顶部显示它的一些一般性错误消息。而在你的控制器动作:
ModelState.AddModelError(string.Empty, "Some generic error occurred. Try again.");
不错!但我需要得到错误,而不是使用ValidationMessageFor。这是一个很好的例子 –
又见http://stackoverflow.com/questions/1352948/how-to-get-all-errors-from-asp-net-mvc-modelstate – Alexey