Мой второй день с ASP.NET MVC и мой первый запрос на код для SO (да, кратчайший путь).
Я ищу способ создания фильтра, который перехватывает текущий вывод из действия и вместо этого выводит JSON (я знаю альтернативные подходы , но это поможет мне понять фильтры). Я хочу игнорировать любые представления, связанные с действием, и просто взять ViewData ["Output"], преобразовать его в JSON и отправить клиенту. Пробелы для заполнения:
TestController.cs:
[JSON]
public ActionResult Index()
{
ViewData["Output"] = "This is my output";
return View();
}
JSONFilter.cs:
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
/*
* 1. How to override the View template and set it to null?
* ViewResult { ViewName = "" } does not skip the view (/Test/Index)
*
* 2. Get existing ViewData, convert to JSON and return with appropriate
* custom headers
*/
}
Обновление: ответы сообщества привели к более полной реализации фильтра для JSON / POX .