FormCollection使用
2024-09-05 03:07:23
FormCollection用来在controller中获取页面表单元素的数据。它是表单元素的集合,包括<input type="submit" />元素。
用法举例:
以下是使用Razor语法的一个表单:
- @using (Html.BeginForm())
- {
- @Html.TextBox("AAA")
- @Html.CheckBox("BBB")
- <input type="submit" name="submit" value="提交">
- }
提交到后台ActionResult为:
- [HttpPost]
- public ActionResult Index(FormCollection form)
- {
- string a = form["AAA"];
- string b = form["BBB"];
- string c = form["submit"];
- return View();
- }
此时可以得到a="",b="false",c="提交"。要注意的是使用form["AAA"]得到的都是string,需要进行类型转换。
FormCollection和Request.Form的区别:
推荐大家使用FormCollection,原因有以下两点:
1.前者便于单元测试:
对于Action进行单元测试时,使用FormCollection作为输入参数,比Request.Form简单,书写如下代码即可模拟一个FormCollection:
- var form = new FormCollection();
- form.Add("fieldName","fieldValue");
2.前者可支持MVC扩展:
Asp.net MVC在进行模型绑定时,会将用户输入绑定到FormCollection中,默认情况下,FormCollection中的内容与Request.Form一致,但是当我们自定义ModelBinder时,会影响FormCollection的取值,而Request.Form不会影响。这样如果我们在自定义ModelBinder时依旧使用Request.Form,自定义ModelBinder就毫无用处。
最新文章
- Android手机编程初学遇到的问题及解决方法
- div在浏览器窗口中居中
- Odoo 9 PDF不显示中文字体
- 001_kafka起步
- Scrum团队成立,阅读《构建之法》第6~7章,并参考以下链接,发布读后感、提出问题、并简要说明你对Scrum的理解
- iOS7 iOS8 毛玻璃效果的分别实现
- python,django,mysql版本号查询
- Java设计模式之《调停者模式》及应用场景
- 史上最强Spring mvc入门
- layUI框架中文件上传前后端交互及遇到的相关问题
- Linux系统——MHA-Atlas-MySQL高可用集群
- Mybatis之collection嵌套查询mapper文件写法
- dir 命令手册
- TCC细读 - 3 恢复流程
- ABP 异常处理 第四篇
- JS_各种排序方法
- Centos7-安装Gradle4.10
- conductor APIs
- EFCore
- centos7下git的安装和配置
热门文章
- Nuget下载 MySql.Data 连接MySql数据库
- 强制执行父类下的__init__
- Alt+~,Alt+Tab
- 【转载】熟练利用google hacking来辅助我们快速渗透
- java模拟from表单提交,上传图片
- 图像人脸检测+人眼检测 (opencv + c++)
- 1264: 祈雨(Java)
- Redis主从及Cluster区别及注意事项
- preg_replace
- (二)XML基础(2)