目前Active Controller / Action MVC .NET

时间:2012-03-14 18:37:49

标签: .net asp.net-mvc

在MVC / C#应用程序中,如何在不解析URL请求的情况下以编程方式了解哪个控制器和操作正在执行?有办法吗?

这里的目标是我有顶级导航,主要使用Site.Master中的CSS渲染,我想在重新选择最近选择的菜单项时更改样式...基本上我是只是尝试向用户提供有关他们在网站中的位置的上下文。也许我会以错误的方式去做?

2 个答案:

答案 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的参数添加到控制器函数中,模型绑定器将动作名称绑定到它。