2012-03-20 2 views
8

В соответствии с HttpResponseMessage documentation на MSDN причина фразы (как и в разделе «ОК» 200 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

Это была известная ошибка с веб-API WCF. Я думал, что он был исправлен в ASP.Net Web API. Что вы используете? –

+0

Я использую ASP.NET WebAPI. – Ross

+0

@Ross Вы решили это сейчас? Если да, можете ли вы просмотреть ответы и отметить правильный. – Junto

ответ

8

The ReasonPhrase не работает в Кассини. Используйте IIS Express, а не Cassini, и вы обнаружите, что ответ включает в себя причину.