ASP.NET MVC中在Action获取提交的表单数据方法
有Index视图如下:

视图代码如下:
- <%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage" %>
- <asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
- 主页
- </asp:Content>
- <asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
- <h2><%= Html.Encode(ViewData["Message"]) %></h2>
- <br />
- <br />
- <% using(Html.BeginForm("HandleForm", "Home")) %>
- <% { %>
- Enter your name: <%= Html.TextBox("name") %>
- <br /><br />
- Select your favorite color:<br />
- <%= Html.RadioButton("favColor", "Blue", true) %> Blue <br />
- <%= Html.RadioButton("favColor", "Purple", false)%> Purple <br />
- <%= Html.RadioButton("favColor", "Red", false)%> Red <br />
- <%= Html.RadioButton("favColor", "Orange", false)%> Orange <br />
- <%= Html.RadioButton("favColor", "Yellow", false)%> Yellow <br />
- <%= Html.RadioButton("favColor", "Brown", false)%> Brown <br />
- <%= Html.RadioButton("favColor", "Green", false)%> Green
- <br /><br />
- <%= Html.CheckBox("bookType") %> I read more fiction than non-fiction.<br />
- <br /><br />
- My favorite pet: <%= Html.DropDownList("pets") %>
- <br /><br />
- <input type="submit" value="Submit" />
- <% } %>
- </asp:Content>
如图填写表单数据:

分别使用不同的表单处理方法,对提交的表单数据在视图FormResults呈现。
提交表单对应的HomeController,包含以不同方法获取表单数据的代码,如下:
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Web;
- using System.Web.Mvc;
- namespace HtmlHelper.Controllers
- {
- [HandleError]
- public class HomeController : Controller
- {
- public ActionResult Index()
- {
- ViewData["Message"] = "欢迎使用 ASP.NET MVC!";
- //手动构造页面中下拉框的宠物数据
- List<string> petList = new List<string>();
- petList.Add("Dog");
- petList.Add("Cat");
- petList.Add("Hamster");
- petList.Add("Parrot");
- petList.Add("Gold fish");
- petList.Add("Mountain lion");
- petList.Add("Elephant");
- ViewData["Pets"] = new SelectList(petList);
- return View();
- }
- public ActionResult About()
- {
- return View();
- }
- /// <summary>
- /// 处理表单提交数据,方法1:使用传统的Request请求取值
- /// </summary>
- /// <returns></returns>
- public ActionResult HandleForm()
- {
- ViewData["name"] = Request["name"];
- ViewData["favColor"] = Request["favColor"];
- ViewData["bookType"] = Request["bookType"];
- ViewData["pet"] = Request["pets"];
- return View("FormResults");
- }
- /// <summary>
- /// 处理表单提交数据,方法2:Action参数名与表单元素name值一一对应
- /// </summary>
- /// <param name="name"></param>
- /// <param name="favColor"></param>
- /// <param name="bookType"></param>
- /// <param name="pets"></param>
- /// <returns></returns>
- //public ActionResult HandleForm(string name, string favColor, Boolean bookType, string pets)
- //{
- // ViewData["name"] = name;
- // ViewData["favColor"] = favColor;
- // ViewData["bookType"] = bookType;
- // ViewData["pet"] = pets;
- // return View("FormResults");
- //}
- /// <summary>
- /// 处理表单提交数据,方法3:从MVC封装的FormCollection容器中读取
- /// </summary>
- /// <param name="form"></param>
- /// <returns></returns>
- //public ActionResult HandleForm(FormCollection form)
- //{
- // ViewData["name"] = form["name"];
- // ViewData["favColor"] = form["favColor"];
- // ViewData["bookType"] = form["bookType"];
- // ViewData["pet"] = form["pets"];
- // return View("FormResults");
- //}
- /// <summary>
- /// 处理表单提交数据,方法4:使用实体作为Action参数传入,前提是提交的表单元素名称与实体属性名称一一对应
- /// </summary>
- /// <param name="request"></param>
- /// <returns></returns>
- //[HttpPost]
- //public ActionResult HandleForm(InforModel infor)
- //{
- // ViewData["name"] = infor.name;
- // ViewData["favColor"] = infor.favColor;
- // ViewData["bookType"] = infor.bookType;
- // ViewData["pet"] = infor.pets;
- // return View("FormResults");
- //}
- }
- }
在FormResults视图显示ViewData的数据,如图所示:

ASP.NET MVC中在Action获取提交的表单数据方法的更多相关文章
- ASP.NET MVC中在Action获取提交的表单数据方法总结 (4种方法,转载备忘)
有Index视图如下: 视图代码如下: <%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Mas ...
- 在ASP.NET MVC中使用UEditor无法提交的解决办法
很简单的一个ajax提交,却怎么都不成功 $.ajax({ type: "POST", url: "/mms/riskmanage/commitreply", ...
- Asp.net Mvc中分部视图获取后台数据并展示
方式一: 1.主页面中代码: @{Html.RenderAction("CreateLeftMenu");} 2.Controller中代码: public PartialView ...
- 如果asp.net mvc中某个action被执行了两次,请检查是不是以下的原因
注释 <link rel="icon" href="#"> 这一句后试试
- 解决Asp.net Mvc中使用异步的时候HttpContext.Current为null的方法
在项目中使用异步(async await)的时候发现一个现象,HttpContext.Current为null,导致一系列的问题. 上网查了一些资料后找到了一个对象: System.Threading ...
- Asp.net MVC中文件上传的参数转对象的方法
参照博友的.NET WebApi上传文件接口(带其他参数)实现文件上传并带参数,当需要多个参数时,不想每次都通过HttpContext.Request.Params去取值,就针对HttpRequest ...
- Spring Mvc 前台数据的获取、SpringMvc 表单数据的获取
首先在web.xml 里面配置一个编码过滤器 <!-- springmvc框架本身没有处理请求编码,我们自己配置一个请求编码过滤器 --> <filter> <filte ...
- Asp.net mvc 中的路由
在 Asp.net mvc 中,来自客户端的请求总是针对某个 Controller 中的 Action 方法,因此,必须采用某种机制从请求的 URl 中解析出对应的 Controller 和 Acti ...
- 在Asp.Net MVC中使用ModelBinding构造Array、List、Collection以及Dictionary
在asp.net mvc中,我们可以在html表单中使用特定的格式传递参数,从而通过model binder构造一些集合类型. 第一种方式 public ActionResult Infancy(Pe ...
随机推荐
- OpenResty 扩展库之(一)——lua-resty-shell 库
介绍 当您需要执行子进程(或shell命令)时,这是一个打算与OpenResty应用程序一起使用的小型库. 它类似于os.execute和io.popen,除了它是完全非阻塞的,因此即使对于需要很长时 ...
- 生成电脑的ssh key值
通过命令 ssh-keygen -t rsa -C "你的邮箱" 然后在用户目录下找到.ssh文件夹,这个是隐藏的,然后打开id_rsa.pub文件,里面的内容就是需要的ssh k ...
- Spring MVC表单防重复提交
利用Spring MVC的过滤器及token传递验证来实现表单防重复提交. 创建注解 @Target(ElementType.METHOD) @Retention(RetentionPolicy.RU ...
- elasticsearch-head插件安装说明
下载及安装readme https://github.com/mobz/elasticsearch-head 安装: npm install npm run start 访问:http://local ...
- Xilinx Altera FPGA中的逻辑资源(Slices VS LE)比较
前言 经常有朋友会问我,“我这个方案是用A家的FPGA还是X家的FPGA呢?他们的容量够不够呢?他们的容量怎么比较呢?”当然,在大部分时候,我在给客户做设计的时候,直接会用到最高容量的产品,因为我们的 ...
- transform 动画效果
http://www.css88.com/tool/css3Preview/Transform.html transform的含义是:改变,使…变形:转换 transform的属性包括:rotate( ...
- 【Tomcat】Tomcat配置与优化(内存、并发、管理)【自己配置】
一.JVM内存配置优化 主要通过以下的几个jvm参数来设置堆内存的: -Xmx512m 最大总堆内存,一般设置为物理内存的1/4 -Xms512m 初始总堆内存,一般将它设置的和最大堆内存一样大,这样 ...
- springcloud中eureka集群unavailable-replicas
unavailable-replicas 配置了集群,但是在注册中心显示另外的几个集群地址是不可用的: 1 首先需要再host中添加服务名映射,如果应映射了再看是否在yml中配置了prefer-ip- ...
- Shell-脚本只能运行1次
用空文件进行判断 path=`pwd` if [ -f ${path}/.runned ]; then { echo "This script can only execute once! ...
- 空洞卷积(dilated Convolution) 与感受野(Receptive Field)
一.空洞卷积 空洞卷积是是为了解决基于FCN思想的语义分割中,输出图像的size要求和输入图像的size一致而需要upsample,但由于FCN中使用pooling操作来增大感受野同时降低分辨率,导致 ...