0
在asp.net mvc视图中,您可以访问视图返回的模型。如何获取视图外部的视图模型
如果您不是在视图本身中,而是在控制器方法完成后运行的另一种方法,那么将使用什么[static?]方法来获取当前视图的当前模型?
我可以访问所有的标准对象:会话请求,响应等
我工作围绕通过加载一个会话变量,但我不喜欢使用会话如果框架已经持有它。
在asp.net mvc视图中,您可以访问视图返回的模型。如何获取视图外部的视图模型
如果您不是在视图本身中,而是在控制器方法完成后运行的另一种方法,那么将使用什么[static?]方法来获取当前视图的当前模型?
我可以访问所有的标准对象:会话请求,响应等
我工作围绕通过加载一个会话变量,但我不喜欢使用会话如果框架已经持有它。
您可以创建一个将在MVC请求管道中执行的操作过滤器。如果您想在执行操作方法后执行一些代码,则可以覆盖OnActionExecuted
方法。
public class MyCustom : ActionFilterAttribute
{
public override void OnActionExecuted(ActionExecutedContext filterContext)
{
var viewModel = filterContext.Controller.ViewData.Model;
var response = filterContext.HttpContext.Response;
var viewBag = filterContext.Controller.ViewBag;
// Use any of these as needed
base.OnActionExecuted(filterContext);
}
}
如果你想这对所有的要求,您可以在此过滤器的GlobalFilters集合RegisterRoutes
方法内注册。
GlobalFilters.Filters.Add(new MyCustom());
这个方法在什么地方?什么时候被调用? – Shyju
它是SiteMap.SiteMapResolve事件的事件处理程序,它发生在视图中的代码运行之后,但它全部返回给浏览器之前。 – toddmo
为此创建自定义ActionFilterAttribute,http://www.asp.net/mvc/overview/older-versions-1/controllers-and-routing/understanding-action-filters-cs –