什么是HttpDelete属性

时间:2012-01-05 17:16:55

标签: asp.net-mvc-3

http://msdn.microsoft.com/en-us/library/system.web.mvc.httpdeleteattribute.aspx 表示用于限制操作方法的属性,以便该方法仅处理HTTP DELETE请求。

但是,这究竟意味着什么 Mvc

 @Html.ActionLink("delete", new {id= model.PrimaryKey})// 

这是删除请求吗?浏览器将如何区分

 @Html.ActionLink("gridDisplay", new {id= model.PrimaryKey})// 

控制器

[HttpDelete] //what is this how does it know?
public action result delete()
{
 delete();//web service deletes something just go with me here 
}
public action result gridDisplay()
{
  return view()
}

2 个答案:

答案 0 :(得分:5)

删除是HTTP verb,就像GET,PUT和POST一样。 This attribute restricts仅处理HTTP删除请求的操作方法。

通常将此视为RESTful Web服务的一部分。这使得HTTP请求将完全清楚地执行某种类型的删除。

您不能只链接到将执行HTTP删除的操作。浏览器中的链接通常会发出GET。我希望你点击该链接获得404.

答案 1 :(得分:0)

首先,您显示的所有视图代码都不是删除,也不会被视为HTTP DELETE动词。

您显示的控制器代码表示使用HttpDelete修饰的操作方法,这意味着此代码将在Delete请求上执行,其名称与操作名称相同。

  

它是如何知道的?

没有。您的View代码将具有类似HTTP.Post的链接,即HTTP.Delete链接,它将指向此操作