Я хотел бы сделать следующее (я разделю на два пункта):
Перед выполнением действия, если модель представления находится в кеше, верните представление и модель представления без выполнения действия.
Если его нет в кеше, продолжите выполнение действия и дойдите до OnActionExecuted, чтобы поместить модель представления в кеш.
Как я могу вернуть представление и модель представления без выполнения действия (первая точка)?
Это код. Мое сомнение обозначено ?????????:
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
//IF the viewmodel exists dont execute the action again
if (filterContext.HttpContext.Cache["viewmodel"]!=null)
{
filterContext.Result=???????
}
base.OnActionExecuting(filterContext);
}
public override void OnActionExecuted(ActionExecutedContext filterContext)
{
//Cast de model
ContentDetailVM model = (ContentDetailVM)filterContext.Controller.ViewData.Model;
filterContext.HttpContext.Cache.Insert("viewmodel", model);
//we're asking for a close section
if (model.CurrentSection.HideAccess == true)
{
//pass to the client some flag in order to show the div
filterContext.Controller.ViewData["showoverlaylayer"]=true;
}
base.OnActionExecuted(filterContext);
}
Заранее большое спасибо.
С уважением.
Хосе.