2012-03-09 13 views
3

私のアプリケーションでは、REST API呼び出しが行われたときに、適切なステータスコードを返すエラーがある場合、応答の本体にJsonまたはXmlを返すようにしています。MVC 3 + RESTがカスタムhttpエラーを返しますか?

ので400: { 'ErrorCode': '400', 'Reason' : 'You did something wrong..' }

または400: <Error><ErrorCode>400</ErrorCode><Reason>You did something wrong</Reason></Error>

私はこれを実現するために、ステータスと体を設定する方法を見つけるように見えることはできませんが。 fiddlerを使って何が返されたのかを調べると、普通の返信を返すとActionResultが返されますが、ステータスは200です。HttpExceptionを使用すると、ステータスコードは設定できますが、本文は大きなHTML文書として返されました。私はHttpStatusCodeResultを使用しようとしましたが、失敗して302を返すようです。

私はちょっと困惑しています。

+0

かなり確信をスローされた例外はRestに戻されます。どこかで無効にしていない限り、 – Doomsknight

答えて

0

MVC 4 Betaをチェックしてください。この問題を解決するのに役立つWeb APIという新機能があります。

+1

MVC 4はアルファになるまで使用できません。 – David

+0

@David私はその解決策がわからない。しかし、MVC 4はベータです。 http://www.asp.net/mvc/mvc4 – Doomsknight

+0

@Doomsknightはい、申し訳ありませんが、正式リリース日が到来するまでは意味しました。なぜ私がアルファを書いたのかわからない: – David

2

のWeb APIは、さまざまな方法でこれを処理していますが、ASP.NET MVCに固執したいならば、以下のコードを使用することができます

Response.StatusCode = 500; 
Response.TrySkipIisCustomErrors = true; 
return Content("Error description goes here.", "text/plain"); 
関連する問題