zoukankan      html  css  js  c++  java
  • ASP.NET MVC中在Action获取提交的表单数据方法总结 (4种方法,转载备忘)

    有Index视图如下:

    视图代码如下:

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

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

  • 相关阅读:
    Windows Store App 主题动画
    Windows Store App 过渡动画
    Windows Store App 控件动画
    Windows Store App 近期访问列表
    Windows Store App 文件选取器
    Windows Store App 访问应用内部文件
    Windows Store App 用户库文件分组
    Windows Store App 获取文件及文件夹列表
    Windows Store App 用户库文件夹操作
    Windows Store App 用户库文件操作
  • 原文地址:https://www.cnblogs.com/CielWater/p/3282133.html
Copyright © 2011-2022 走看看