我需要能够在自定义帮助程序类中获取控制器名称。
我有以下内容:
@Html.Action("Menu", "Helper")
这会调用ActionResult并生成一个html:
@model List<MvcMenuItem>
@{
Layout = null;
}
@{
@Html.Menu(this.ViewContext).ClientId("navMain").AddRange(Model).Render()
}
这会调用“public static class MvcMenuExtensions
”并在那里(在我的Render()
方法中)我需要能够获取我当前所在的控制器名称,而不是控制器名称。致电MvcMenuExtensions
我试过这个:
string controller = this.ViewContext.RouteData.Values["controller"].ToString();
但这会导致控制器成为“Helper
”控制器,而不是我所在的当前控制器。因为从页面的任何位置调用“ActionResult
”(它在布局中)
由于
答案 0 :(得分:1)
在这里回答:How to get current controller and action from inside Child action? by juhan_h
ControllerContext.ParentActionViewContext.RouteData.Values["action"]
OR
ViewContext.ParentActionViewContext.RouteData.Values["action"]