Я хочу вернуть Модель (данные) контроллера в разных форматах (JavaScript / XML / JSON / HTML), используя ActionFilter's. Вот где я сейчас нахожусь:
Фильтр действий:
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 };
}
}
И это реализация:
[ResultFormat]
public ActionResult Entries(String format)
{
var dc = new Models.WeblogDataContext();
var entries = dc.WeblogEntries.Select(e => e);
return View(entries);
}
Метод OnResultExecuting
вызывается, но я не получаю Модель (данные), возвращенную и отформатированную как объект JSON. Мой контроллер просто отображает вид.
Обновление: Я следую предложению ответа Дарина Димитрова на этот вопрос .