我在ASP.Net MVC 2項目中創建一個簡單的動作方法:
public class HomeController : Controller
{
public ActionResult TestMe()
{
return View();
}
}
然後我發起小提琴手,並建立了一個HTTP GET請求打這個網址:返回
http://localhost.:51149/Home/TestMe
預期的全網頁內容。
然後,我更改了請求以使用HTTP頭而不是HTTP GET。我只收到了原始輸出中的預期頭部信息和身體信息。
HTTP/1.1 200 OK
Server: ASP.NET Development Server/10.0.0.0
Date: Wed, 07 Jul 2010 16:58:55 GMT
X-AspNet-Version: 4.0.30319
X-AspNetMvc-Version: 2.0
Cache-Control: private
Content-Type: text/html; charset=utf-8
Content-Length: 1120
Connection: Close
我的猜測是,你包括對操作方法,這樣它將只HTTP GET響應動詞約束。如果你這樣做,它可以同時適用於GET和HEAD,或者你可以完全忽略約束條件,如果它沒有提供任何值。
public class HomeController : Controller
{
[AcceptVerbs(new[] {"GET", "HEAD"})]
public ActionResult TestMe()
{
return View();
}
}
MVC框架沒有給出特殊處理'HEAD'取得任何結果。 – 2010-07-06 13:03:28
@CraigStuntz - 不正確;至少在當前版本的ASP.NET MVC中,對HEAD請求的響應只有頭部但沒有正文,正如預期的那樣。請參閱下面的a7drew的答案。 – 2017-08-17 15:05:41