Разрешить метод RESTful DELETE в asp.net mvc? - PullRequest
2 голосов
/ 17 ноября 2009

В настоящее время я настраиваю 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

обратите внимание на заголовок Allow в IIS7, он разрешает только GET HEAD OPTIONS и TRACE. В настоящее время я использую [AcceptVerbs (HttpVerbs.Delete)] в моем контроллере удаления (я думаю, что этот расширен MVCContrib, поправьте меня, если я не прав)

PS: я отправляю УДАЛИТЬ используя Javascript:

  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 Ответ

1 голос
/ 17 ноября 2009

MVC 2 имеет это встроенное. Вам не нужен MVCContrib для этого. См. HtmlHelper.HttpMethodOverride и HttpDelete .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...