ASP.Net MVC 在Controller中修改Form表单值的问题
来源:互联网 发布:检查ip端口是否打开 编辑:程序博客网 时间:2024/06/07 15:38
问题请看这里
MVC 相关源码片段:
string attemptedValue = (string)htmlHelper.GetModelStateValue(fullName, typeof(string)); tagBuilder.MergeAttribute("value", attemptedValue ?? ((useViewData) ? htmlHelper.EvalString(fullName, format) : valueParameter), isExplicitValue);
从这段代码中可以看到:MVC先从ModelState中获取表单字段值,在ModelState中不存在相关值的情况下才使用Controller传来的Model里的值。
微软为什么这样处理呢?
其实我也不知道,那我就大胆猜想下:
1. Form的值应该由用户提供,程序员是没权利修改的,只有在用户放弃提供值的情况下(如首次进入Edit界面),才允许Dev提供。
2. MVC在模型绑定过程中会进行数据验证,一方面:MVC得保证在数据验证失败情况下能够把错误数据显示出来(保存在ModelState中)。另一方面:Dev在Controller修改Form值是发生在数据验证成功之后,MVC不能保证Dev提供的值是否符合验证条件。
3. 原则上说表单显示的应该是用户输入的。
0 0
- ASP.Net MVC 在Controller中修改Form表单值的问题
- ASP.NET在MVC控制器中获取Form表单值的方法
- asp.net中动态修改action使server的Form传递表单值,及相关问题
- ASP.NET MVC程序中动态修改form的Action值
- 关于富文本编辑框(FckEditor)在Asp.net mvc中不能传到controller中的问题
- Spring.Net在ASP.NET MVC的过滤器Controller中无效
- 在ASP.NET MVC 中获取当前URL、controller、action
- 在ASP.NET MVC 中获取当前URL、controller、action
- 在ASP.NET MVC 中获取当前URL、controller、action
- 在ASP.NET MVC 中获取当前URL、controller、action
- 在ASP.NET MVC 中获取当前URL、controller、action
- 在ASP.NET MVC 中获取当前URL、controller、action
- 在ASP.NET MVC 中获取当前URL、controller、action
- 在ASP.NET MVC 中获取当前URL、controller、action
- 在ASP.NET MVC 中获取当前URL、controller、action
- 在ASP.NET MVC 中获取当前URL、controller、action
- ASP.NET获取表单form的值
- ASP.NET的Form表单
- 学习文章---vb JMail简单使用指南
- 图像识别中的FAR,FRR,ERR总结
- 常见字符串操作汇总
- Easy PHP Unexpected end of Apache 正确的解决办法
- 输入设备驱动(input子系统)
- ASP.Net MVC 在Controller中修改Form表单值的问题
- 裸floyd大法
- 黑马程序员_IO流
- pat 1076. Forwards on Weibo (30)
- POJ_2063_背包问题
- UML之轻松入门(3)-SRP做好厨子,让别人编程去吧
- Java中的 ==、equals、hashCode
- cin,cout,以及其返回值
- NYOJ55【懒省事的小明】