2012-06-27 4 views
6

次のコードを使用して、フィルタ(ActionFilterAttribute)からクライアントにエラーメッセージを送信しています。キャッチブロックからクライアントに書式設定されたエラーメッセージを送信する

catch (Exception) 
{ 
    var response = context.Request.CreateResponse(httpStatusCode.Unauthorized); 
    response.Content = new StringContent("User with api key is not valid"); 
    context.Response = response; 
} 

しかし、問題はプレーンテキストでのみ送信することです。私は現在のフォーマッタのフォーマットとしてそれを送りたいと思っていました。 jsonやxmlのようなもの。

ここで私はStringContent()を使用していることがわかります。しかし、どのようにカスタムErrorオブジェクトを使って記述できますか? よう、以下の作業をされていない次のいずれか

response.Content = new Error({Message = "User with api key is not valid"}); 

どのように我々は、このためにコードを書くのですか?前もって感謝します。

答えて

8

ええ、私は正しい構文を書いています。次のように書くことができます:

catch (Exception) 
{ 
    var response = context.Request.CreateResponse(HttpStatusCode.NotFound, 
         new Error { Message = "User with api key is not valid"}); 
    context.Response = response; 
} 
+0

これをMVC 3で行う方法は? –

関連する問題