我在检索ASP.NET MVC中的控制器和操作名称时遇到了问题。下面是我的场景。
步骤1:
我正在布局页面中呈现一个Html.Action(“侧边栏”,“帮助器”)。因此,它的控制器和操作应该是这样的。
第2步:
我正在尝试将当前的控制器名称和操作名称传递给侧边栏视图。例如,如果我在HomeController,控制器名称应该是'Home‘而不是'Helper’,因为HelperController位于布局页面中,并且包含在每个页面中。我正在尝试检索步骤3中的名称。
第三步
public class HelperController:Controller{
public PartialViewResult sidebar()
{
string con_action = ControllerContext.RouteData.Values["controller"].ToString()+"-"+ControllerContext.RouteData.Vaues["action"].ToString();
}
}
我的问题是:即使我导航到HomeController的索引操作,它仍然返回控制器名称“帮助器”和操作名称“侧边栏”。我该如何解决这个问题呢?
发布于 2015-09-16 16:18:05
您可以在布局页面中将当前控制器名称和操作名称作为参数进行传递,如下所示
@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;
...
}
}
https://stackoverflow.com/questions/32602574
复制相似问题