如何在母版页中创建链接,其中包含当前页面的动态信息?

时间:2008-10-22 20:11:06

标签: asp.net

我有一个母版页,顶部菜单中有一个帮助链接。此链接应包含当前页面中的动态书签,以便用户滚动到他当前看到的页面的帮助。

<a href="help.aspx#[NameOfCurentPage]">Help</a>

你会如何实现这个?

4 个答案:

答案 0 :(得分:3)

您可以做的另一件事是通过内容页面本身引用母版页。

为了让自己更容易,我在母版页本身中创建了一个可公开访问的方法:

Public Sub SetNavigationPage(ByVal LinkName As String)
   DirectCast(Me.FindControl(MenuName), HyperLink).NavigateUrl = "help.aspx#" & LinkName
End Sub

然后在内容页面中,我通过以下内容获得对母版页的引用...

Dim myMaster As MasterPageClass = DirectCast(Me.Master, MasterPageClass)
myMaster.SetNavigationPage("CurrentPage")

答案 1 :(得分:1)

我在三个多月内没有写过一行c#但你可以在主页(OnLoad)中挂钩一个事件并从那里设置链接。查看ContentPlaceholder中您的主页面中的内容并获取其类型或名称,然后将其应用于链接。

答案 2 :(得分:1)

我会使用“Request.PhysicalPath”来获取所请求的物理路径,然后在您的帮助HMTL中,您可以通过它们所关注的页面来表示这些部分。

你可能会使用:

Path.GetFileName(Request.PhysicalPath).ToUpper()

规范化数据。使用PhysicalPath将允许您在母版页中拥有所有逻辑;这将消除在所有内容页面中编写代码的需要。只是我的偏好。

答案 3 :(得分:1)

<a href="help.aspx#<%= Path.GetFileName(this.Page.Request.FilePath) %>">Help</a>

进入MasterPage,然后在帮助页面上锚定格式为:

<a name="page1.aspx" />Blah, blah
<a name="page2.aspx" />Blah, blah

如果你在子文件夹中重复页面名称,例如,Sub1 / page1.aspx和Sub2 / page1.aspx - 你必须稍微聪明一些。