如何通过控制器上的ModelState变量访问模型的验证消息?
答案 0 :(得分:1)
string message = ModelState["SomeProperty"].Errors[0].ErrorMessage;
当然必须进行检查,因为每个访问器都可以返回null。但是,如果您完全确定SomeProperty
在模型状态中至少有一条错误消息,那就没问题。
这些检查当然可以封装在扩展方法中,这样在控制器中就可以简单地:
string message = ModelState.GetFirstErrorMessageFor("SomeProperty");
就像这样:
public static class ModelStateExtensions
{
public static string GetFirstErrorMessageFor(this ModelStateDictionary modelState, string property)
{
ModelState value;
if (!modelState.TryGetValue(property, out value))
{
return string.Empty;
}
return (value.Errors.FirstOrDefault() ?? new ModelError("")).ErrorMessage;
}
}
答案 1 :(得分:0)
检查ModelState["PropertyName"].Errors
集合。