我有一个SuperController
,它将从所有控制器继承。在构造函数中,我试图使用ControllerName和ActionName填充ViewData。
我不会将ControllerName和ActionName作为ViewData传递。我有一个需要ControllerName和ActionName的方法,我需要将该方法的返回值作为ViewData传递。
我该如何做?
我有一个SuperController
,它将从所有控制器继承。在构造函数中,我试图使用ControllerName和ActionName填充ViewData。
我不会将ControllerName和ActionName作为ViewData传递。我有一个需要ControllerName和ActionName的方法,我需要将该方法的返回值作为ViewData传递。
我该如何做?
不要使用 ViewData
,而是在 Site.Master 中使用以下代码:
<%= ViewContext.RouteData.Values["Controller"] %>
<%= ViewContext.RouteData.Values["Action"] %>
试试这个:
RouteData.Values.First().Value.ToString()
语言/控制器/操作
),则控制器
可能不是第一个条目。 - iCollect.it Ltdprotected override void Initialize(System.Web.Routing.RequestContext requestContext)
{
base.Initialize(requestContext);
//here the routedata is available
ViewData["controller_name"] = (ControllerContext.RouteData.Values["Controller"];
}
我需要从视图中经常获取它们,所以我从稍微不同的角度着手——编写了一些扩展方法到HtmlHelper中,以提供当前的ControllerName和ActionName。这样更容易处理,因为您不需要担心深入ViewData[]包或在适当的位置注入内容。