2012-06-27 22 views
6

używam następującego kodu, aby wysłać komunikat o błędzie do klienta z filtru (ActionFilterAttribute).Wysyłanie sformatowanego komunikatu o błędzie do klienta z bloku catch

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

Ale problem polega na tym, że wysyła tylko tekst zwykły. Chciałem wysłać go jako format obecnego formatyzatora. Podobnie jak w formie json lub xml.

Tutaj wiem, że to dlatego, ponieważ używam StringContent(). Ale jak możemy pisać przy użyciu niestandardowego obiektu błędu? jak następujące nie działa albo:

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

Jak napisać kod dla tego? Z góry dziękuję.

Odpowiedz

8

Ya, znalazłem poprawną składnię pisma. Możemy napisać jak:

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

Jak to zrobić w MVC 3? –

Powiązane problemy