Estoy usando ASP.NET MVC para desarrollar un sitio web. Estoy usando jquery para la funcionalidad AJAX. En los métodos de acción, deseo devolver algún error para indicar que la entrada no es correcta o que la acción no se pudo realizar. En tales casos de error, espero que se llame al manejador de errores jquery ajax y pueda tomar las medidas apropiadas allí. No he encontrado una manera de cómo hacer esto. A continuación está mi método de acción.Cómo devolver el error de la acción MVC de ASP.NET
En casos de error, ¿qué debería estar enviando desde una Acción para que se active el controlador de errores jquery?
public ActionResult AddToFavourites(int entityId, string entityType)
{
if (!Request.IsAjaxRequest())
throw new InvalidOperationException("This action can be called only in async style.");
try
{
RBParams.EntityType typeOfFavourite = (RBParams.EntityType)Enum.Parse(typeof(RBParams.EntityType), entityType);
string status = "";
if (typeOfFavourite == RBParams.EntityType.BusinessEntity)
{
status = MarkFavouriteEntity(entityId);
}
else if (typeOfFavourite == RBParams.EntityType.Review)
{
status = MarkFavouriteReview(entityId);
}
else
{
throw new InvalidOperationException("The type of the entity is not proper");
}
return Content(status);
}
catch (Exception ex)
{
return Content("Error");
}
}
Explicado muy claramente. Muchas gracias, Mattias Jakobsson. – mohang
¿Las configuraciones 'Json' proporcionadas en su ejemplo se establecerán en las variables' xhr' del cliente? – Shimmy
No he votado negativamente, pero no estoy de acuerdo. (Lo siento, @Mattias). Esto hará que se active la devolución de llamada de "éxito" de JavaScript. Siempre queremos que la devolución de llamada de error se active cuando hay un error en el servidor. Esto viola la semántica. De forma simétrica, nos gustaría devolver un error de la serie 500. – Rap