Quiero devolver el Modelo (datos) de un controlador en diferentes formatos (JavaScript/XML/JSON/HTML) usando ActionFilter. Aquí es donde estoy hasta ahora:Devolver JsonResult utilizando ActionFilter en ActionResult en un controlador
El ActionFilter:
public class ResultFormatAttribute : ActionFilterAttribute, IResultFilter
{
void IResultFilter.OnResultExecuting(ResultExecutingContext context)
{
var viewResult = context.Result as ViewResult;
if (viewResult == null) return;
context.Result = new JsonResult { Data = viewResult.ViewData.Model };
}
}
y el árbitro pita aplicación:
[ResultFormat]
public ActionResult Entries(String format)
{
var dc = new Models.WeblogDataContext();
var entries = dc.WeblogEntries.Select(e => e);
return View(entries);
}
El método OnResultExecuting
es llamado, pero no estoy recibiendo el modelo (datos) devuelto y formateado como un objeto JSON. Mi controlador solo renderiza la Vista.
Actualización: estoy siguiendo la sugerencia de la respuesta de Darin Dimitrov a this question.
IResultFilter.OnResultExecuting regresa vacía. Y la clase Json no está disponible en ese contexto. – roosteronacid