我有一个ASP.NET MVC项目,我有一个单一的操作接受GET,POST和DELETE请求。每种类型的请求通过我的控制器上的属性Action方法进行过滤。
[ActionName(Constants.AdministrationGraphDashboardAction),AcceptVerbs(HttpVerbs.Post)] public ActionResult GraphAdd([ModelBinder(typeof (GraphDescriptorBinder))] GraphDescriptor details); [ActionName(Constants.AdministrationGraphDashboardAction),AcceptVerbs(HttpVerbs.Delete)] public ActionResult GraphDelete([ModelBinder(typeof (RdfUriBinder))] RdfUri graphUri)
我的GraphAdd方法工作得很好。我想知道的是我如何创建一个HTML< form />或< a /> (链接),这将导致浏览器执行HTTP删除请求并触发我的GraphDelete方法。
如果有办法做到这一点,有人可以发布一些示例HTML,如果可用,MVC HtmlHelper方法我应该使用?
解决方法
我不相信这是可能的。 HTML4中的表单元素的method属性XHTML 1.0将只接受GET或POST。此外,大多数网络服务器的标准配置将拒绝DELETE和PUT请求。假设您已将Web服务器配置为允许像PUT / DELETE(例如WebDav)这样的方法,则可以创建自己的HTTP请求:
DELETE /resource.html HTTP/1.1 Host: domain.com
并妥善处理。然而,没有办法通过当前的HTML表单来做到这一点。为了利益而言,HTML5中的DELETE支持有some discussion。