在c#中怎么在母版页的导航栏使用class-active
时间: 2024-12-22 18:32:55 浏览: 11
在ASP.NET C#中,要在母版页(Master Page)的导航栏使用`class-active`来实现当前页面高亮显示,你可以按照以下步骤操作:
1. 首先,在你的母版页(Master Page)上,添加一个包含链接的导航菜单。通常这会是一个`<ul>`元素,其中每个链接项是一个`<li>`元素。
```html
<ul id="navbar">
<li><a href="/Home/Index">首页</a></li>
<li><a href="/About">关于我们</a></li>
<!-- 更多链接... -->
</ul>
```
2. 给导航条的每个链接添加`href`属性,并给需要突出显示的链接添加`class="active"`,当实际链接的URL匹配时,这个类会被应用到对应的`<li>`标签上。
```html
<li class="<%# IsPageActive("Home", "Index") ? "active" : "" %>"><a href="/Home/Index">首页</a></li>
<li class="<%# IsPageActive("About", "") ? "active" : "" %>"><a href="/About">关于我们</a></li>
<!-- 更改这里的IsPageActive方法... -->
```
3. 创建一个自定义的`IsPageActive`方法,比如在母版页的CodeBehind文件中,检查当前请求的URL是否与指定的链接相符,如果是,则返回`"active"`,否则返回空字符串:
```csharp
protected string IsPageActive(string controllerName, string actionName)
{
if (!String.IsNullOrEmpty(Request.Path))
{
string path = Request.ApplicationPath + Request.Path;
string[] parts = path.Split('/');
if (parts.Length > 1 && String.Equals(parts[1], controllerName, StringComparison.OrdinalIgnoreCase) && (actionName == "" || String.Equals(parts[2], actionName, StringComparison.OrdinalIgnoreCase)))
{
return "active";
}
}
return "";
}
```
4. 现在,每当用户访问一个导航链接时,对应的那个链接就会自动获得`class-active`样式,表示它代表了当前的页面。
阅读全文