MVC. Mostrar mensaje de la excepción en la vista sin generar un Exception.

==>Controller

public async Task<JsonResult> MyAction(int id)
{
try
{
await _service.MethodAsync(id);
return Json(new {Message = “ok”}, JsonRequestBehavior.AllowGet);
}
catch (Exception e)
{
return MyJsonWebHelper.ThrowJsonError(e.Message, Response);

}

}

==>Helper

public static JsonResult ThrowJsonError(Exception e, HttpResponseBase response)
{
var result = new JsonResult();

response.StatusCode = (int) HttpStatusCode.BadRequest;
var err = HttpContext.Current.Server.HtmlEncode(e.Message);
response.StatusDescription = err;

var message = new Dictionary<string, string> {{“Message”, e.Message}};

result.Data = message;
return result;
}

==> View

var url = ‘@Url.Action(“MyAction”, “MyController”)’;

$.ajax({
type: ‘POST’,
url: url,
data: { id: id },
success: function() {
//
},
error: function(err) {
alert(decodeURI(err.statusText));
}

});

 

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

w

Conectando a %s