Вторият ми ден с 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.