获取ControllerName和ActionName并在Master Page中填充ViewData?
我有一个SuperController
将从所有控制器继承。 在构造函数中,我试图使用ControllerName和ActionName来填充ViewData。
我不打算将ControllerName和ActionName作为ViewData传递。 我有一个需要ControllerName和ActionName的方法,我需要将方法的返回值作为ViewData传递。
我怎样才能做到这一点?
不要使用ViewData
。 相反,在你的Site.Master中使用它:
<%= ViewContext.RouteData.Values["Controller"] %>
<%= ViewContext.RouteData.Values["Action"] %>
SO - 在ASP.Net MVC视图中获取控制器名称和操作方法
尝试这个:
RouteData.Values.First().Value.ToString()
假设我正确地阅读了你的文章,并且你没有试图访问视图中的控制器/动作名称,但INSTEAD试图对它们做些什么,并将结果放入viewdata中:
你不能在构造函数中完成它,因为上下文尚未创建。 您需要重写Initialize方法:
protected override void Initialize(System.Web.Routing.RequestContext requestContext)
{
base.Initialize(requestContext);
//here the routedata is available
ViewData["controller_name"] = (ControllerContext.RouteData.Values["Controller"];
}
(请注意,您可以将ControllerContext.RouteData传递给您的函数,并让它选择它需要的值。)
链接地址: http://www.djcxy.com/p/23355.html上一篇: Get ControllerName and ActionName and populate the ViewData in Master Page?
下一篇: Use Google maps API to draw a polyline that changes color