更改导航 ID 以突出显示当前页面 ASP.NET 的编程解决方案

Programmatic solution to change navigation id to highlight current page ASP.NET(更改导航 ID 以突出显示当前页面 ASP.NET 的编程解决方案)
本文介绍了更改导航 ID 以突出显示当前页面 ASP.NET 的编程解决方案的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

我正在使用 Visual Studio 2008 和 ASP.NET 3.5 编写网站.我设置了一个母版页来简化布局并保留内容页面而不是内容和布局.

I am writing a website with Visual Studio 2008 and ASP.NET 3.5. I have a masterpage set up to simplify the layout and to keep the content pages for content rather than content and layout.

导航是列表,css'd,所以它看起来像一个栏.为了在栏上突出显示页面,列表项需要看起来像这样 <li id="current">.如果可以避免,我不想使用 <asp:ContentPlaceHolder>.是否有一些代码可以添加到我的每个页面(或仅添加到母版页?)来完成此操作,或者我是否使用 <asp:ContentPlaceHolder>'s?

The navigation is list, css'd so it looks like a bar. In order to highlight the page on the bar, the list item needs to look like this <li id="current">. I do not want to use <asp:ContentPlaceHolder> if I can avoid it. Is there some code I can add to each of my pages (or just to the masterpage?) to accomplish this or am I stuck using <asp:ContentPlaceHolder>'s?

推荐答案

向母版页添加一个名为 Page Section 的属性

Add a property to your master page called Page Section

public string PageSection { get; set; }

将 MasterType 页面指令添加到内容页面的顶部

Add a MasterType page directive to the top of your content pages

<%@ MasterType VirtualPath="~/foo.master" %>

在你的内容页面代码后面,设置母版页的PageSection属性

In your content page code behind, set the PageSection property of the master page

Master.PageSection = "home";    

在您的母版页中,将正文标记设为服务器标记

In your master page, make the body tag a server tag

<body ID="bodyTag" runat="server">

在后面的母版页代码中,使用该属性在body标签上设置一个类

In the master page code behind, use that property to set a class on the body tag

bodyTag.Attributes.Add("class", this.PageSection);

为每个导航项赋予唯一的 ID 属性.

Give each of your nav items a unique ID attribute.

在你的 css 中,根据当前页面类更改导航项的显示

In your css, change the display of the nav items based on the current page class

.home #homeNavItem,
.contact #contactNavItem
{ 
    color: #f00; 
} 

这篇关于更改导航 ID 以突出显示当前页面 ASP.NET 的编程解决方案的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

相关文档推荐

Setup RabbitMQ consumer in ASP.NET Core application(在 ASP.NET Core 应用程序中设置 RabbitMQ 消费者)
Adding Custom header to the excel file(将自定义标题添加到 excel 文件)
ASP.NET masterpages: how to insert markup in the head section inside the aspx?(ASP.NET 母版页:如何在 aspx 内的 head 部分插入标记?)
Cache-Control Headers in ASP.NET(ASP.NET 中的缓存控制标头)
Could not load file or assembly #39;Newtonsoft.Json, Version=4.5.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed#39;(无法加载文件或程序集“Newtonsoft.Json,版本=4.5.0.0,文化=中性,PublicKeyToken=30ad4fe6b2a6aeed) - IT屋-程序员软件开
Specifying a custom DateTime format when serializing with Json.Net(使用 Json.Net 序列化时指定自定义 DateTime 格式)