我在ASP.NET MVC中检索Controller和Action名称时遇到问题。以下是我的情景。
第1步:
我正在布局页面中渲染一个Html.Action(“侧边栏”,“帮助者”)。所以Controller和Action就是这样的。
第2步:
我正在尝试将当前控制器名称和操作名称传递给侧边栏视图的视图。例如,如果我在HomeController,控制器名称将是'Home'而不是'Helper',因为HelperController位于布局页面中,并且包含在每个页面中。我正在尝试检索名称,如步骤3中所示。
第3步
public class HelperController:Controller{
public PartialViewResult sidebar()
{
string con_action = ControllerContext.RouteData.Values["controller"].ToString()+"-"+ControllerContext.RouteData.Vaues["action"].ToString();
}
}
我的问题:即使我导航到HomeController的Index动作,它也会继续返回控制器名称“Helper”和动作名称“sidebar”。我该如何解决这个问题?
答案 0 :(得分:0)
您可以将当前控制器名称和操作名称作为参数传递到布局页面中,如此
@Html.Action("sidebar", "Helper", new { thisController = ViewContext.RouteData.Values["controller"].ToString(), thisAction = ViewContext.RouteData.Values["action"].ToString() })
然后在Helper控制器中访问它们
public class HelperController:Controller{
public PartialViewResult sidebar(string thisController, string thisAction)
{
string con_action = thisController + "-" + thisAction;
...
}
}