ASP.NET MVC получил ошибку 405 при запросе HTTP DELETE?

Я пытаюсь передать DELETE на URL-адрес в asp.net MVC с помощью JavaScript, но, тем не менее, я всегда возвращал 405 Method not allow.

есть ли способ сделать эту работу?

К вашему сведению: я установил атрибут [AcceptVerb(HttpVerb.Delete)] на свой контроллер.

DELETE /post/delete/8

это запрос


person DucDigital    schedule 19.11.2009    source источник
comment
Можете ли вы показать нам некоторые данные REQUEST через Fiddler или FireBug, чтобы мы могли дважды подтвердить, что запрашивается?   -  person Pure.Krome    schedule 19.11.2009
comment
я добавил запрос через Firebug, это запрос, и никаких данных, так как я все еще тестирую...   -  person DucDigital    schedule 19.11.2009


Ответы (2)


Меня это тоже расстроило. Это связано с тем, что WebDAVModule по умолчанию установлен в IIS 7.5. Удалив модуль, вы можете избавиться от этого досадного ограничения. Просто,

    <system.webServer>
    <validation validateIntegratedModeConfiguration="false"/>
    <modules runAllManagedModulesForAllRequests="true">
            <remove name="WebDAVModule"/> <- add this

из http://shouldersofgiants.co.uk/Blog/post/2009/11/27/HTTP-Error-405-With-ASPNet-MVC-and-HTTP-PUT-on-IIS-75.aspx

person Andy    schedule 09.09.2010
comment
Отлично, мне тоже помогло. Это может быть просто вещь MVC.NET 3, потому что я не помню, чтобы это происходило в MVC.NET 2. - person Dofs; 24.05.2011
comment
Работает и для запросов PUT! Спасибо! - person Lance Fisher; 28.06.2011
comment
В моем случае мне пришлось удалить глаголы PUT и DELETE в сопоставлении обработчика WebDAV перед удалением модуля webdave (я думаю, удаление всего обработчика WebDAV также было бы хорошо). При удалении только модуля, а не сопоставления, у меня возникло исключение связи... Мне также пришлось добавить глаголы PUT и DELETE в ограничение на глаголы сопоставления обработчика ExtensionlessUrlHandler-Integrated-4.0. - person Charles HETIER; 17.04.2013
comment
Я могу проверить комментарий Чарльза, приведенный выше ответ у меня не сработал. Я должен был следовать указаниям Чарльза. Я предполагаю, что это результат изменений, внесенных в установку IIS 7.5 в 2008 R2. - person gravidThoughts; 08.06.2014

Вы должны проверить web.config (если используете IIS7, иначе диспетчер IIS для IIS6 и ниже), чтобы убедиться, что команда DELETE сопоставлена ​​с обработчиком запроса MCV.

person Josh Pearce    schedule 19.11.2009
comment
‹add verb=path=.mvc validate=false type=System.Web.Mvc.MvcHttpHandler, System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35 /› - › ты это имеешь в виду? - person DucDigital; 19.11.2009