Mvc提交表单的四种方法全程详解
本文将详细讲解 MVC 中提交表单的四种方法,并提供示例说明。四种方法分别为 GET、POST、PUT 和 DELETE。
在开始之前,我们需要了解一下 MVC 的控制器(Controller)和视图(View)。控制器负责接受用户的请求并处理请求,视图负责展示数据。
1. GET 方法
GET 方法通常用于获取数据,比如查询某个信息等。在 MVC 中,我们可以通过控制器来处理 GET 请求,然后将获取到的数据传递给视图进行展示。
在控制器中,我们可以通过 Request.QueryString 获取 GET 请求的参数。示例代码如下:
public ActionResult Index()
{
string name = Request.QueryString["name"];
string age = Request.QueryString["age"];
// 处理获取到的数据
return View();
}
在视图中,我们可以通过以下方式来构建 GET 请求的链接:
<a href="/Home/Index?name=Tom&age=22">查询</a>
2. POST 方法
POST 方法通常用于提交数据,比如添加、修改等操作。在 MVC 中,我们可以通过控制器来处理 POST 请求,然后将提交的数据保存到数据库中。
在控制器中,我们可以通过 Request.Form 获取 POST 请求中提交的数据。示例代码如下:
[HttpPost]
public ActionResult Add(FormCollection form)
{
string name = form["name"];
string age = form["age"];
// 处理提交的数据
return View();
}
在视图中,我们可以通过以下方式来提交 POST 请求的表单:
<form action="/Home/Add" method="post">
<input type="text" name="name" />
<input type="text" name="age" />
<input type="submit" value="提交" />
</form>
3. PUT 方法
PUT 方法通常用于更新数据,比如修改某个信息等。在 MVC 中,由于 PUT 方法不是浏览器默认支持的方法,我们需要通过添加一个扩展方法的方式来支持 PUT 方法。
我们可以通过在 Global.asax.cs 文件中添加如下代码来注册 PUT 请求的支持:
public static void RegisterRoutes(RouteCollection routes)
{
// ...
routes.MapRoute(
name: "PUT",
url: "{controller}/{id}",
defaults: new { action = "PUT", id = UrlParameter.Optional },
constraints: new { httpMethod = new HttpMethodConstraint("PUT") }
);
// ...
}
在控制器中,我们需要使用 HttpPutAttribute 来标记 PUT 请求的方法。示例代码如下:
[HttpPut]
public ActionResult Update(int id, FormCollection form)
{
string name = form["name"];
string age = form["age"];
// 处理更新的数据
return View();
}
在视图中,我们可以通过以下方式来提交 PUT 请求的表单:
<form action="/Home/Update/1" method="post">
<input type="hidden" name="_method" value="PUT" />
<input type="text" name="name" />
<input type="text" name="age" />
<input type="submit" value="提交" />
</form>
4. DELETE 方法
DELETE 方法通常用于删除数据,比如删除某个信息等。在 MVC 中,由于 DELETE 方法不是浏览器默认支持的方法,我们需要通过添加一个扩展方法的方式来支持 DELETE 方法。
我们可以通过在 Global.asax.cs 文件中添加如下代码来注册 DELETE 请求的支持:
public static void RegisterRoutes(RouteCollection routes)
{
// ...
routes.MapRoute(
name: "DELETE",
url: "{controller}/{id}",
defaults: new { action = "DELETE", id = UrlParameter.Optional },
constraints: new { httpMethod = new HttpMethodConstraint("DELETE") }
);
// ...
}
在控制器中,我们需要使用 HttpDeleteAttribute 来标记 DELETE 请求的方法。示例代码如下:
[HttpDelete]
public ActionResult Delete(int id)
{
// 删除指定的数据
return View();
}
在视图中,我们可以通过以下方式来提交 DELETE 请求的表单:
<form action="/Home/Delete/1" method="post">
<input type="hidden" name="_method" value="DELETE" />
<input type="submit" value="提交" />
</form>
通过以上四种方法,我们就可以在 MVC 中轻松地提交表单了。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Mvc提交表单的四种方法全程详解 - Python技术站