Я хотел бы сделать следующее (я разделюсь на две точки):
Перед выполнением действия, если модель представления находится в кеше, вернуть представление и модель представления без выполнения действия.
Если его нет в кэше, продолжите выполнение действия и достигните 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);
}
Заранее большое спасибо.
С наилучшими пожеланиями.
Хосе.