2012-03-20 58 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,您会发现响应包含原因。