2012-06-27 10 views
6

Estoy usando el siguiente código para enviar un mensaje de error al cliente desde un filtro (ActionFilterAttribute).Enviando mensaje de error formateado al cliente desde el bloque catch

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

Pero el problema es que se envía solo en texto sin formato. Quería enviarlo como formato de formateador actual. Como en forma de json o xml.

Aquí se que esto es porque estoy usando StringContent(). Pero, ¿cómo podemos escribir usando un objeto de error personalizado? como, lo siguiente que no está funcionando bien:

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

¿Cómo escribimos código para esto? Gracias por adelantado.

Respuesta

8

Ya encontré la sintaxis correcta de la escritura. Podemos escribir como:

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

¿Cómo hacer esto en MVC 3? –

Cuestiones relacionadas