获取主页中的当前控制器和操作

时间:2010-02-12 10:45:57

标签: c# asp.net-mvc

使用asp.net mvc。我在主页中有各种链接。例如

/主页/

/首页/关于

/新闻/

/文档/

如果我选择一个链接,我想在其上设置一个类。例如如果我选择新闻链接,我想通过在其上设置一个类来突出显示它。

如何确定控制器和操作的内容以设置其类属性?

1 个答案:

答案 0 :(得分:3)

routedata将包含该信息。键“controller”将包含控制器的名称,键“action”将包含操作的名称。

要解决您想要做的事情,我通常会在包含控制器名称和操作名称的body标签上添加一个id。像这样:

<body id="<%=Html.GetBodyId()%>">

GetBodyId()方法看起来像这样:

public static string GetBodyId(this HtmlHelper helper) {
    return string.Format("{0}-{1}", 
        helper.ViewContext.RouteData.GetRequiredString("controller"), 
        helper.ViewContext.RouteData.GetRequiredString("action");
}

然后我把我的链接上的类放在我的主页中,看起来像这样:

<a href="[[link]]" class="home-index-link">Home</a>

然后我可以创建我的css规则,使所选链接具有不同的外观。这看起来像这样:

.home-index-link {
    /*css rules here*/
}
#home-index .home-index-link {
    /*css for selected link*/
}