在MVC / C#应用程序中,如何在不解析URL请求的情况下以编程方式了解哪个控制器和操作正在执行?有办法吗?
这里的目标是我有顶级导航,主要使用Site.Master中的CSS渲染,我想在重新选择最近选择的菜单项时更改样式...基本上我是只是尝试向用户提供有关他们在网站中的位置的上下文。也许我会以错误的方式去做?
答案 0 :(得分:2)
您可以从路线值中获取它。例如,如果您在自定义HtmlHelper中:
public static IHtmlString MyHelper(this HtmlHelper htmlHelper)
{
var rd = htmlHelper.ViewContext.RouteData;
var action = rd.GetRequiredString("action");
var controller = rd.GetRequiredString("controller");
...
}
答案 1 :(得分:0)
简单的方法是将一个名为action
的参数添加到控制器函数中,模型绑定器将动作名称绑定到它。