2012-03-20 6 views
8

In base a HttpResponseMessage documentation su MSDN, la frase di motivazione (come in, la parte "OK" di 200 OK) deve essere configurabile. La risposta HTTP non mi permetta di impostare il motivo frase:MVC4 Frase motivo WebAPI?

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

Tuttavia, quando ho consumare la risposta sul lato client come WebResponse, non vedo la mia ragione personalizzato frase. Mi aspetterei di trovarlo sotto StatusDescription. Guardando la risposta grezza usando Fiddler, non sembra che la frase di ragione venga impostata sul server.

Un collega utili sottolineato che con i risultati di azione (e derivati), avrei potuto fare qualcosa di simile a:

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

Sembra come se questa è la funzionalità di preciso che sto cercando, ma io Sono incerto su come convincere WebAPI a collaborare.

Dove sto andando male?

+0

Questo era un bug noto con l'API Web WCF. Ho pensato che fosse stato risolto nell'API Web ASP.Net. Quale stai usando? –

+0

Utilizzo la WebAPI di ASP.NET. – Ross

+0

@Ross Hai risolto questo ora? In tal caso, puoi rivedere le risposte e contrassegnare quella corretta. – Junto

risposta

8

The ReasonPhrase non funziona in Cassini. Usa IIS Express piuttosto che Cassini e troverai che la risposta include il motivo.