c# - ASP.NET C# 使用列表导航如何在事件导航页面上设置 id ="current"?

标签 c# asp.net

我仍在学习 asp.net,想知道是否有一种简单的方法可以将 id="current"设置为导航栏,以便根据用户所在的页面突出显示该页面。我的模板设置为使用 id="current"来更改链接的样式,并且我有一个类来设置每个选项卡的样式。

这是我的 Site.Master 中的代码

<nav id="navigation" class="style-1">

<div class="left-corner"></div>
<div class="right-corner"></div>

<ul class="menu" id="responsive">

    <li><a href="home.aspx" id="current"><i class="home"></i> Home</a></li>

    <li><a href="Calendar.aspx"><i class="calendar"></i>Calendar</a></li>

    <li><a href="Bill.aspx"><i class="list"></i>Bills</a></li>

</ul>
</nav>

正如我所说,我仍在学习,所以我不确定将它放在 ContentPlaceHolder 中是否更好。我尝试只请求 URL 并执行 if 语句,但我不确定如何设置 id=。

任何帮助都会很棒。

谢谢

最佳答案

您应该考虑设置菜单项的 class 而不是 id 以便将其显示为突出显示。

你可以这样做。
为每个链接添加一个 idrunat="server":

<li><a href="home.aspx" id="HomeLink" runat="server"><i class="home"></i> Home</a></li>
<li><a href="Calendar.aspx" id="CalendarLink" runat="server"><i class="calendar"></i>Calendar</a></li>
<li><a href="Bill.aspx" id="BillLink" runat="server"><i class="list"></i>Bills</a></li>

然后在母版页的代码隐藏中,您可以将类设置为导航到的每个类:

protected void Page_Load(object sender, EventArgs e)
{
    SetCurrentPage();
}

private void SetCurrentPage()
{
    var pageName = GetPageName();

    switch (pageName)
    {
        case "home.aspx":
            HomeLink.Attributes["class"] = "current";
            break;
        case "Calendar.aspx":
            CalendarLink.Attributes["class"] = "current";
            break;
        case "Bill.aspx":
            BillLink.Attributes["class"] = "current";
            break;
    }
}

private string GetPageName()
{
    return Request.Url.ToString().Split('/').Last();
}

这会将与当前页面匹配的链接类别设置为 current。当然,您需要在样式表中定义该类。但这应该有效。

关于c# - ASP.NET C# 使用列表导航如何在事件导航页面上设置 id ="current"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14690583/

相关文章:

c# - 使用指针和地址

c# - 设置STS但在webapp中保留formauthentication

c# - 如何正确地将 JSON 字符串反序列化为包含另一个类的嵌套列表的类

c# - 如何在 ASP.NET CORE 中签署 XML SAML 断言

c# - StructureMap 在 Web API 帮助页面 ModelDescriptionLink.cshtml 中导致 Stack Empty 异常

c# - Team Foundation Server 的 "Client"和 "WebApi"库有什么区别?

asp.net - 是否有 ASP.NET 分页控件(不是 MVC)?

asp.net - OWIN 的这些用途可能吗?

c# - 我的正则表达式仍在捕获未捕获的组

c# - 使用控制台应用程序打开浏览器,获取一些数据并将其传回应用程序