在WEB开发中,form表单是HTML非常重要的部分,今天来探索POST和GET在MVC中的使用方法。
1、get方式
View中的表单代码
<form action="pm" method="get">
参数1:<input type="text" name="name1" />
<br />
参数2:<input type="text" name="name2" />
<br /><br />
<input type="submit" value="Submit" />
</form>
以上是纯纯的html代码,在WebForm中,我们经常使用ASP.NET的服务器控件,可以通过事件驱动在后台文件获取文本框的值,而在MVC中,视图端可以完全使用纯纯的html代码。
上述表单,目标路径是 pm,方式get
这个页面是Home路径的,我们在Home控制器中,写一个pm函数,来接收参数
public ActionResult pm()
{
string q1 = Request.QueryString["name1"];
string q2 = Request.QueryString["name2"];
return View();
}
如代码,get方式的接收方法为 Request.QueryString["参数名"]
如果这个表单的action是自身页面,那么第一次打开时,不用担心因为没有参数而报错。
GET参数还有一种方式,就是通过控制器函数本身的参数来传递,如下代码:
public ActionResult pm(string name1,string name2)
{
string q1 = name1;
string q2 = name2;
return View();
}
2、post方式
post参数的接收,就是把Request.QueryString["参数名"] 改成 Request.Form["参数名"]
public ActionResult pm()
{
string q1 = Request.Form["name1"];
string q2 = Request.Form["name2"];
return View();
}
3、函数上标 [HttpPost] 和 [HttpGet]
如果在Action函数上方加上[HttpPost] 或 [HttpGet],那么函数内会限制只能接收Post或Get的一种传值方式,另一种会报错
如果不加,则两种方式都可以。