CSDN广告是越来越多了,所有博客笔记不再更新,新网址 DotNet笔记
问题一:遍历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("字段名称"); 就行了。