这是一个简单的问题.stackoverflow如何在Asp.net MVC中执行他们的菜单,并突出显示我们所在的页面.
为此,我写了一些代码,其中有些部分使用我的自定义扩展(例如语言),继续使用它,只需忽略次要部分。
我将其放置在包含用于获取操作和控制器的菜单的部分之上,以便我可以将其传递给扩展。
<% string currentAction = ViewContext.RouteData.Values["action"].ToString();
string currentController = ViewContext.RouteData.Values["controller"].ToString(); %>
Run Code Online (Sandbox Code Playgroud)
这是侧边栏项目,基本上这将生成一个带有链接的“li”标签和您的自定义类,以指示该链接当前是否在页面/突出显示中使用。
public static string SidebarItem(this System.Web.Mvc.HtmlHelper html, string currentAction, string currentController, string action, string controller, string languageKey, params object[] args)
{
TagBuilder tb = new TagBuilder("li");
if (string.Equals(currentAction, action, StringComparison.OrdinalIgnoreCase) && string.Equals(currentController, controller, StringComparison.OrdinalIgnoreCase))
{
tb.GenerateId("activemenu");
}
string text = html.Language(languageKey, args);
string link = html.ActionLink(text, action, controller).ToHtmlString();
tb.SetInnerText("{0}");
return String.Format(tb.ToString(), "<span>"+link+"</span>");
}
Run Code Online (Sandbox Code Playgroud)
这是上面代码的实际用法
<%= Html.SidebarItem(currentAction, currentController, "index", "home", "index") %>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7838 次 |
| 最近记录: |