在asp.net mvc中允许RESTful DELETE方法?

时间:2009-11-17 18:46:39

标签: javascript jquery asp.net-mvc rest

我目前正在设置asp.net以接受应用程序中的DELETE http动词。 但是,当我发送

"DELETE /posts/delete/1" 

我总是得到405方法不允许错误。我试着看一下标题:

Response Headers
Cache-Control   private
Pragma  No-Cache
Allow   GET, HEAD, OPTIONS, TRACE
Content-Type    text/html; charset=utf-8
Server  Microsoft-IIS/7.5, Private-Server
Date    Tue, 17 Nov 2009 18:30:31 GMT
Content-Length  5590

允许GET,HEAD,OPTIONS,TRACE

注意IIS7中的Allow标头,它只允许GET HEAD OPTIONS和TRACE。我目前在我的删除控制器中使用[AcceptVerbs(HttpVerbs.Delete)](我认为这个是由MVCContrib扩展的,如果我错了,请纠正我)

PS:我使用Javascript发送DELETE:

  function _ajax_request(url, data, callback, type, method) {
      if (jQuery.isFunction(data)) {
          callback = data;
          data = {};
      }
      return jQuery.ajax({
          type: method,
          url: url,
          data: data,
          success: callback,
          dataType: type
      });
  }

 _ajax_request($(this).attr('href'), "", function(d) { alert("submit"); }, "json", 'DELETE');

提前感谢你!

1 个答案:

答案 0 :(得分:1)

MVC 2内置了这个。你不需要MVCContrib。请参阅HtmlHelper.HttpMethodOverrideHttpDelete