2012-03-20 64 views
8

根據MSDN上的HttpResponseMessage documentation,原因詞組(如200 OK中的「OK」部分)應該可以設置。 HTTP響應也讓我設置的原因短語:MVC4 WebAPI原因短語?

HttpResponseMessage response = new HttpResponseMessage(System.Net.HttpStatusCode.Conflict); 
      response.ReasonPhrase = "conflict message"; 

然而,當我耗在客戶端作爲WebResponse的響應,我看不到我的自定義原因短語。我期望在StatusDescription下找到它。使用Fiddler查看原始響應,似乎並未在服務器上設置原因詞組。

樂於助人的同事指出,隨着動作的結果(和衍生的),我可以做一個類似於:

new HttpStatusCodeResult(System.Net.HttpStatusCode.Conflict, "conflict message");

這好像是精確的功能我之後,但我不確定如何說服WebAPI進行合作。

我哪裏錯了?

+0

這是WCF Web API的一個已知錯誤。我認爲它已在ASP.Net Web API中修復。你在用哪個? – 2012-03-20 22:35:45

+0

我正在使用ASP.NET WebAPI。 – Ross 2012-03-21 13:02:31

+0

@Ross你現在解決了嗎?如果是這樣,你可以查看答案並標記正確答案。 – Junto 2012-07-20 10:39:45

回答

8

ReasonPhrase在卡西尼中不起作用。使用IIS Express而不是Cassini,您會發現響應包含原因。