mvc下的模型验证与modelsate/modelstate.Clear()
2014-12-13 00:57
211 查看
问题一:遍历modelstate中的错误信息
问题二:modelstate.Clear()/ModelState.Remove("字段名称")的问题
比如以下流程: submit---->控制器中修改了model的一个属性值,比如id或name----> return view(model) 页面展示后发现id或name的值是修改前的,很奇怪.
这是因为 ModelState 的值没有更新,里面的值还是原来的值。但我们是没办法修改它里面的值的,所以我们必须清除它里面旧有的值。要清除很简单,只要一行ModelState.Clear();
但这是全部清除,如果不想全部清除,就用 ModelState.Remove("字段名称"); 就行了。
/// <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("字段名称"); 就行了。
相关文章推荐
- 学习笔记:ASP.NET MVC ModelState验证模型状态
- MVC 2 的验证问题:ModelState.IsValid
- 10、ASP.NET MVC入门到精通——Model(模型)和验证
- ASP.NET MVC ModelState与数据验证【转】
- 关于MVC中模型model的验证问题
- MVC中的ModelState.AddModelError的使用,可用于验证用户名是否存在
- 获取Action的ModelState中所有验证信息的方式(Asp.net MVC)
- ASP.NET MVC(模型(Model),视图(View)和控制Controller)实践:实现身份验证权限管理
- MVC model验证 获取验证错误信息
- C# MVC 进入Action 方法之后怎么使用MVC参数验证模型
- [Asp.net MVC]Asp.net MVC5系列——在模型中添加验证规则
- ASP.NET MVC2 数据模型验证类库:MVC Foolproof Validation
- 【MVC版本】MVC3、MVC4之MODEL验证大比拼
- Scikit-learn:模型选择Model selection之pipline和交叉验证
- 【ASP.NET Core快速入门】(十五)MVC开发:ReturnUrl实现、Model后端验证 、Model前端验证
- backbone学习笔记:模型(Model)(2)属性验证
- MVC 模型注解验证
- ASP.NET MVC & EF 构建智能查询 二、模型的设计“.NET研究”与ModelBinder
- 《Pro ASP.NET MVC 3 Framework》学习笔记之三十一 【模型验证】(转)
- ASP.NET MVC 4 (十) 模型验证