有Index视图如下:

视图代码如下:

  1. <%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage" %>
  2. <asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
  3. 主页
  4. </asp:Content>
  5. <asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
  6. <h2><%= Html.Encode(ViewData["Message"]) %></h2>
  7. <br />
  8. <br />
  9. <% using(Html.BeginForm("HandleForm", "Home")) %>
  10. <% { %>
  11. Enter your name: <%= Html.TextBox("name") %>
  12. <br /><br />
  13. Select your favorite color:<br />
  14. <%= Html.RadioButton("favColor", "Blue", true) %> Blue <br />
  15. <%= Html.RadioButton("favColor", "Purple", false)%> Purple <br />
  16. <%= Html.RadioButton("favColor", "Red", false)%> Red <br />
  17. <%= Html.RadioButton("favColor", "Orange", false)%> Orange <br />
  18. <%= Html.RadioButton("favColor", "Yellow", false)%> Yellow <br />
  19. <%= Html.RadioButton("favColor", "Brown", false)%> Brown <br />
  20. <%= Html.RadioButton("favColor", "Green", false)%> Green
  21. <br /><br />
  22. <%= Html.CheckBox("bookType") %> I read more fiction than non-fiction.<br />
  23. <br /><br />
  24. My favorite pet: <%= Html.DropDownList("pets") %>
  25. <br /><br />
  26. <input type="submit" value="Submit" />
  27. <% } %>
  28. </asp:Content>

如图填写表单数据:

分别使用不同的表单处理方法,对提交的表单数据在视图FormResults呈现。

提交表单对应的HomeController,包含以不同方法获取表单数据的代码,如下:

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Web;
  5. using System.Web.Mvc;
  6. namespace HtmlHelper.Controllers
  7. {
  8. [HandleError]
  9. public class HomeController : Controller
  10. {
  11. public ActionResult Index()
  12. {
  13. ViewData["Message"] = "欢迎使用 ASP.NET MVC!";
  14. //手动构造页面中下拉框的宠物数据
  15. List<string> petList = new List<string>();
  16. petList.Add("Dog");
  17. petList.Add("Cat");
  18. petList.Add("Hamster");
  19. petList.Add("Parrot");
  20. petList.Add("Gold fish");
  21. petList.Add("Mountain lion");
  22. petList.Add("Elephant");
  23. ViewData["Pets"] = new SelectList(petList);
  24. return View();
  25. }
  26. public ActionResult About()
  27. {
  28. return View();
  29. }
  30. /// <summary>
  31. /// 处理表单提交数据,方法1:使用传统的Request请求取值
  32. /// </summary>
  33. /// <returns></returns>
  34. public ActionResult HandleForm()
  35. {
  36. ViewData["name"] = Request["name"];
  37. ViewData["favColor"] = Request["favColor"];
  38. ViewData["bookType"] = Request["bookType"];
  39. ViewData["pet"] = Request["pets"];
  40. return View("FormResults");
  41. }
  42. /// <summary>
  43. /// 处理表单提交数据,方法2:Action参数名与表单元素name值一一对应
  44. /// </summary>
  45. /// <param name="name"></param>
  46. /// <param name="favColor"></param>
  47. /// <param name="bookType"></param>
  48. /// <param name="pets"></param>
  49. /// <returns></returns>
  50. //public ActionResult HandleForm(string name, string favColor, Boolean bookType, string pets)
  51. //{
  52. //    ViewData["name"] = name;
  53. //    ViewData["favColor"] = favColor;
  54. //    ViewData["bookType"] = bookType;
  55. //    ViewData["pet"] = pets;
  56. //    return View("FormResults");
  57. //}
  58. /// <summary>
  59. /// 处理表单提交数据,方法3:从MVC封装的FormCollection容器中读取
  60. /// </summary>
  61. /// <param name="form"></param>
  62. /// <returns></returns>
  63. //public ActionResult HandleForm(FormCollection form)
  64. //{
  65. //    ViewData["name"] = form["name"];
  66. //    ViewData["favColor"] = form["favColor"];
  67. //    ViewData["bookType"] = form["bookType"];
  68. //    ViewData["pet"] = form["pets"];
  69. //    return View("FormResults");
  70. //}
  71. /// <summary>
  72. /// 处理表单提交数据,方法4:使用实体作为Action参数传入,前提是提交的表单元素名称与实体属性名称一一对应
  73. /// </summary>
  74. /// <param name="request"></param>
  75. /// <returns></returns>
  76. //[HttpPost]
  77. //public ActionResult HandleForm(InforModel infor)
  78. //{
  79. //    ViewData["name"] = infor.name;
  80. //    ViewData["favColor"] = infor.favColor;
  81. //    ViewData["bookType"] = infor.bookType;
  82. //    ViewData["pet"] = infor.pets;
  83. //    return View("FormResults");
  84. //}
  85. }
  86. }

在FormResults视图显示ViewData的数据,如图所示:

ASP.NET MVC中在Action获取提交的表单数据方法的更多相关文章

  1. ASP.NET MVC中在Action获取提交的表单数据方法总结 (4种方法,转载备忘)

    有Index视图如下: 视图代码如下: <%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Mas ...

  2. 在ASP.NET MVC中使用UEditor无法提交的解决办法

    很简单的一个ajax提交,却怎么都不成功 $.ajax({ type: "POST", url: "/mms/riskmanage/commitreply", ...

  3. Asp.net Mvc中分部视图获取后台数据并展示

    方式一: 1.主页面中代码: @{Html.RenderAction("CreateLeftMenu");} 2.Controller中代码: public PartialView ...

  4. 如果asp.net mvc中某个action被执行了两次,请检查是不是以下的原因

    注释 <link rel="icon" href="#"> 这一句后试试

  5. 解决Asp.net Mvc中使用异步的时候HttpContext.Current为null的方法

    在项目中使用异步(async await)的时候发现一个现象,HttpContext.Current为null,导致一系列的问题. 上网查了一些资料后找到了一个对象: System.Threading ...

  6. Asp.net MVC中文件上传的参数转对象的方法

    参照博友的.NET WebApi上传文件接口(带其他参数)实现文件上传并带参数,当需要多个参数时,不想每次都通过HttpContext.Request.Params去取值,就针对HttpRequest ...

  7. Spring Mvc 前台数据的获取、SpringMvc 表单数据的获取

    首先在web.xml 里面配置一个编码过滤器 <!-- springmvc框架本身没有处理请求编码,我们自己配置一个请求编码过滤器 --> <filter> <filte ...

  8. Asp.net mvc 中的路由

    在 Asp.net mvc 中,来自客户端的请求总是针对某个 Controller 中的 Action 方法,因此,必须采用某种机制从请求的 URl 中解析出对应的 Controller 和 Acti ...

  9. 在Asp.Net MVC中使用ModelBinding构造Array、List、Collection以及Dictionary

    在asp.net mvc中,我们可以在html表单中使用特定的格式传递参数,从而通过model binder构造一些集合类型. 第一种方式 public ActionResult Infancy(Pe ...

随机推荐

  1. 2018年9月22日CCPC吉林站参赛总结

    发现思维题是硬伤,代码能力是硬伤,对知识点的理解不深刻是硬伤 接下来要做的就是 1.熟悉每一个知识点,把每一个知识点和实现它的代码联系在一起学习 2.多见题,看看他们是怎么考察这些知识点的,等比赛的时 ...

  2. Java实现基于桶式排序思想和计数排序思想实现的基数排序

    计数排序 前提:待排序表中的所有待排序关键字必须互不相同: 思想:计数排序算法针对表中的每个记录,扫描待排序的表一趟,统计表中有多少个记录的关键码比该记录的关键码小,假设针对某一个记录,统计出的计数值 ...

  3. soj1010. Zipper

    1010. Zipper Constraints Time Limit: 1 secs, Memory Limit: 32 MB Description Given three strings, yo ...

  4. <!DOCTYPE>是干嘛用的?— html文档类型

    一.啥是文档类型? 在网站开发中一定遇到过这样几种html文档 <!DOCTYPE> 是啥? Web 世界中存在许多不同的文档.只有了解文档的类型,浏览器才能正确地显示文档. HTML 也 ...

  5. laravel 和 thinkphp 条件查询的区别

    laravel:以二维数组形式where查询,可以为空,即,该条where不运行: thinkphp:以字符串形式查询,不能为空.

  6. 【leetcode 简单】 第九十三题 二进制手表

    二进制手表顶部有 4 个 LED 代表小时(0-11),底部的 6 个 LED 代表分钟(0-59). 每个 LED 代表一个 0 或 1,最低位在右侧. 例如,上面的二进制手表读取 “3:25”. ...

  7. DNS域传送漏洞

    nslookup -type=ptr 8.8.8.8             #查询一个IP地址对应的域名 nslookup -type=ns baidu.com         #查询baidu.c ...

  8. hdu 1254 推箱子(双重bfs)

    题目链接 Problem Description 推箱子是一个很经典的游戏.今天我们来玩一个简单版本.在一个M*N的房间里有一个箱子和一个搬运工,搬运工的工作就是把箱子推到指定的位置,注意,搬运工只能 ...

  9. align-items和align-content的区别

    最近在研究flex布局,容器中有两个属性,是用来定义crossAxis测轴排列方式的.一开始接触align-items还可以理解感觉不难,后来看到align-content就感觉有点混淆了,特开一篇博 ...

  10. UNIX环境高级编程 第14章 高级I/O

    这一章涉及很多概念和函数,包括:非阻塞I/O.记录锁.I/O复用.异步I/O.readv和writev函数以及内存映射. 非阻塞I/O 在Unix中,可以将系统调用分为两种,一种是“低速”系统调用,另 ...