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 –