【问题标题】:One Hyperlink In Many Different Locations许多不同位置的一个超链接
【发布时间】:2010-09-09 16:42:27
【问题描述】:

我想在我网站的许多位置实现一个超链接,但我只想定义一次而不是多次。实现这一目标的最佳方法是什么?

我开始在 web.config 的节点中列出它,但我只能将它作为文字列出,并没有成功地将它作为超链接结束。

我对母版页了解不多,但我对它们的了解在我看来,它们不是这项任务的答案,因为它们不允许该超链接位于某些页面上,而不是其他人以及在某些页面上的不同位置。

请帮忙! :)

我在 ASP.net VB.net 中工作

【问题讨论】:

    标签: asp.net html master-pages hyperlink literals


    【解决方案1】:

    在您想要的每个页面上放置一个HyperLink 控件。

    例如<asp:HyperLink runat="server" id="LogInLink">Login</asp:HyperLink>

    然后在代码隐藏中的超链接上设置NavigateUrl 属性,例如this.LogInLink.NavigateUrl = Global.MySpecialUrl; 或使用 <%=Global.MySpecialUrl%> 表示法在标记中的 NavigateUrl 中从代码中引用您想要的值。

    [对不起,那是 C# 代码]

    【讨论】:

    • 好的,我希望有一种方法可以在没有代码的情况下使用。但是,这看起来可以理解......与超链接相关的文本怎么样,你怎么会只在一个地方声明呢?
    • 好吧,你也可以在后面的代码中设置它,或者使用 msdn.microsoft.com/en-us/library/fw69ke6f(VS.80).aspx
    • 对于这样的事情,
    【解决方案2】:

    您可以创建一个继承自 HyperLink 的自定义控件。此方法不需要在单个页面上使用代码隐藏,但您需要创建一个新类并修改您的 web.config 文件。根据需要更改命名空间。

    SpecialLink.vb

    Namespace YourWebSite.Controls
     Public Class SpecialLink
      Inherits HyperLink
    
      Public Sub New()
       NavigateUrl = "~/SpecialLinkUri.aspx"
       Text = "Special Link Text"
      End Sub
     End Class
    End Namespace
    

    web.config(将其添加到 system.web 节点) 这允许您在整个站点的任何页面/母版页/用户控件上使用此控件

    <pages>
      <controls>
       <add namespace="YourWebSite.Controls" tagPrefix="YourWebSite"/>
      </controls>
    </pages>
    

    在您的页面上使用它

    <p>This is some text, here's the link: <YourWebSite:SpecialLink></YourWebSite:SpecialLink></p>
    <p>This is some text, <YourWebSite:SpecialLink>here's the link</YourWebSite:SpecialLink>.</p>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-18
      • 1970-01-01
      • 2014-10-26
      • 1970-01-01
      相关资源
      最近更新 更多