使用 ASP.NET MVC 中的 PUT 或 DELETE 动词进行 HTML 表单提交
在 ASP.NET MVC 中,我们通常使用 HTTP 动词来处理网页上的表单提交。除了常见的 POST 和 GET 请求之外,我们也可以使用 PUT 和 DELETE 请求来实现更新和删除操作。PUT 请求用于更新资源,而 DELETE 请求用于删除资源。这两种请求通常用于 RESTful API 中,但在某些情况下也可以在 ASP.NET MVC 中使用。让我们来看一个示例,假设我们有一个商品管理系统,我们希望能够通过 HTML 表单来更新和删除商品。首先,我们需要在视图中创建一个表单,用于编辑商品信息。我们可以使用 HTML 的 form 元素,并将 method 属性设置为 "PUT",并指定 action 属性为我们的更新商品的路由。html在上面的代码中,我们通过添加一个隐藏的 input 元素,将请求的方法设置为 "PUT"。这样,当我们点击提交按钮时,表单将发送一个 PUT 请求到 "/products/update" 路由。接下来,我们需要在控制器中处理这个 PUT 请求。我们可以使用 ASP.NET MVC 提供的 [HttpPut] 特性来标记我们的动作方法。
csharp[HttpPut]public ActionResult Update(ProductViewModel model){ // 根据 model 中的数据更新商品信息 // ... return RedirectToAction("Index");}在上面的代码中,我们使用 [HttpPut] 特性来标记 Update 动作方法。这样,当我们收到一个 PUT 请求时,ASP.NET MVC 将自动将请求中的数据绑定到 ProductViewModel 对象中,并将其作为参数传递给我们的动作方法。在动作方法中,我们可以根据 ProductViewModel 中的数据来更新商品信息。完成更新后,我们可以通过 RedirectToAction 方法来重定向用户到商品列表页面。接下来,让我们来看一下如何使用 DELETE 请求来删除商品。我们可以再次在视图中创建一个表单,用于删除商品。同样地,我们可以使用 HTML 的 form 元素,并将 method 属性设置为 "POST",并指定 action 属性为我们的删除商品的路由。html在上面的代码中,我们通过添加一个隐藏的 input 元素,将请求的方法设置为 "DELETE"。这样,当我们点击提交按钮时,表单将发送一个 DELETE 请求到 "/products/delete" 路由。接下来,我们需要在控制器中处理这个 DELETE 请求。我们可以使用 ASP.NET MVC 提供的 [HttpDelete] 特性来标记我们的动作方法。
csharp[HttpDelete]public ActionResult Delete(int productId){ // 根据 productId 删除对应的商品 // ... return RedirectToAction("Index");}在上面的代码中,我们使用 [HttpDelete] 特性来标记 Delete 动作方法。这样,当我们收到一个 DELETE 请求时,ASP.NET MVC 将自动将请求中的数据绑定到参数中,并将其作为参数传递给我们的动作方法。在动作方法中,我们可以根据参数中的数据来删除对应的商品。完成删除后,我们同样可以通过 RedirectToAction 方法来重定向用户到商品列表页面。在 ASP.NET MVC 中,我们可以使用 PUT 和 DELETE 请求来实现更新和删除操作。通过在表单中添加一个隐藏的 input 元素,并将其值设置为对应的 HTTP 动词,我们可以将表单提交的方法设置为 PUT 或 DELETE。在控制器中,我们可以使用 [HttpPut] 和 [HttpDelete] 特性来标记对应的动作方法,以便 ASP.NET MVC 可以正确地处理这些请求。这样,我们就可以方便地使用 HTML 表单来进行更新和删除操作了。