• ASP.NET MVC post请求接收参数的三种方式


    1.在控制器中建立一个PostDemo方法,建立视图创建一个表单

      1 <h2>PostDemo</h2>
      2 name的值:@ViewBag.name
      3 <br />
      4 name2的值:@ViewBag.name2
      5 <form action="/RequestDemo/PostDemo" method="post">
      6     <input type="text" id="name" name="name"/>
      7     <input type="submit" value="提交"/>
      8 </form>
      9 实体方式提交:
     10 <form action="/RequestDemo/PostDemomodel" method="post">
     11     <input type="text" id="name" name="name" />
     12     <input type="submit" value="提交" />
     13 </form>
     14 
    View Code

    2.然后建立一个和PostDemo方法同名的方法,标记为httpPost请求,参数为FormCollection类型,表示是获取提交保单所有的数据

      1         //默认为Get方法请求
      2         public ActionResult PostDemo()
      3         {
      4             return View();
      5         }
      6         //标记为Post方式请求,改方法就只能接受post方法请求
      7         [HttpPost]
      8         public ActionResult PostDemo(FormCollection form)
      9         {
     10             //第一种获取提交表单的方式
     11             string  name = Request.Form["name"];
     12             ViewBag.name = name;
     13             //第二种获取提交表单的方式
     14             string  name2 = form["name"];
     15             ViewBag.name2 = name2;
     16             return View();
     17         }
    View Code

    image

    3.第三种写法是使用一个类来接收数据,同样也要标记HttpPost,这里是MVC自动把表单中名称跟PersonViewModel类中同名的属性复制,注意必须:前台提交的input标签中的text元素名是name和PersonViewModel类的属性名称相同。

      1  [HttpPost]
      2         public ActionResult PostDemomodel(PersonViewModel model)
      3         {
      4             //使用model方式提交
      5             string name = model.Name;
      6             ViewBag.name = name;
      7 
      8             return View("PostDemo");
      9         }
    View Code

    PersonViewModel类:

      1 public class PersonViewModel
      2     {
      3         public string Name { get; set; }
      4 
      5         public int Age { get; set; }
      6     }
    View Code

    image

    image

  • 相关阅读:
    Redis的探究
    白话插件框架原理
    Jquery文本框值改变事件兼容性
    HDU多校练习第一场4608——I_Number
    0-创建scott数据
    句柄和指针
    openssl编译(VC6.0)
    CrashRpt_v.1.4.2_vs2008_also_ok
    文件转换dll mingw
    qt windows分发工具使用(windoployqt)
  • 原文地址:https://www.cnblogs.com/M-LittleBird/p/5855973.html
Copyright © 2020-2023  润新知