您的位置:首页 > 其它

mvc下的模型验证与modelsate/modelstate.Clear()

2014-12-13 00:57 211 查看
问题一:遍历modelstate中的错误信息

/// <summary>
/// 根据控制器的modelstate,查询其中的错误信息,并拼接为字符串返回
/// </summary>
/// <param name="modelstate"></param>
/// <returns></returns>
public static string GetModelStateErrmsg(ModelStateDictionary modelstate)
{
string str = "";
if (!modelstate.IsValid)
{
List<string> Keys = modelstate.Keys.ToList();
foreach (var key in Keys)
{
var errors = modelstate[key].Errors.ToList();
int i = 0;
foreach (var error in errors)
{

str += " [" + error.ErrorMessage + "] ";
}
}
}
return str;
}


问题二:modelstate.Clear()/ModelState.Remove("字段名称")的问题

比如以下流程: submit---->控制器中修改了model的一个属性值,比如id或name----> return view(model) 页面展示后发现id或name的值是修改前的,很奇怪.

这是因为 ModelState 的值没有更新,里面的值还是原来的值。但我们是没办法修改它里面的值的,所以我们必须清除它里面旧有的值。要清除很简单,只要一行ModelState.Clear();
但这是全部清除,如果不想全部清除,就用 ModelState.Remove("字段名称"); 就行了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: