路由我使用的是新的屬性與MVC5路由,並已得到了HTTP GET
和POST
方法限制通過增加[HttpGet]
和[HttpPost]
屬性,我的操作方法來工作。但是,當我添加[HttpPut]
我只是得到一個404錯誤頁面。有誰知道我需要做什麼來獲得屬性路由使用http PUT
?請參見下面的代碼:屬性與HTTP PUT方法約束
[HttpGet]
[Route("edit")]
public ActionResult Edit() {
// this works
return View();
}
[HttpPost]
[Route("insert")]
public ActionResult Insert() {
// this works
return View();
}
[HttpPut]
[Route("update")]
public ActionResult Update() {
// this does not work
return View();
}
我試着X-HTTP-Method-Override=PUT
POST /update HTTP/1.1
Host: localhost:61794
Content-Length: 32
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.101 Safari/537.36
Content-Type: application/x-www-form-urlencoded
X-HTTP-Method-Override=PUT&text=
並且還帶有一個真正的PUT
PUT /update HTTP/1.1
Host: localhost:61794
Content-Length: 5
Cache-Control: max-age=0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.101 Safari/537.36
Content-Type: application/x-www-form-urlencoded
text=
您確定您使用的是System.Web.MVC的[HttpPut]嗎?還有System.Web.Http的[HttpPut]。 – Spock
是的,我正在使用'System.Web.Mvc.HttpPutAttribute'。 – lajjne
你能分享你的請求的樣子嗎?您可能可以從瀏覽器調試工具或Fiddler獲取詳細信息... –