我正在尝试呈现一个简单的超链接,它链接到页面中的命名锚点,例如:
<a href="#namedAnchor">scroll to down</a>
<a name="namedAnchor">down</a>
问题是,当我使用像asp:HyperLink
或HtmlAnchor
这样的ASP.NET控件时,href="#namedAnchor"
呈现为href="controls/#namedAnchor"
(其中controls
是包含锚点的用户控件所在的子目录)。下面是该控件的代码,使用两种类型的锚控件,这两种控件都有相同的问题:
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="Test.ascx.cs" Inherits="TestWebApplication1.controls.Test" %>
<a href="#namedAnchor" runat="server">HtmlAnchor</a>
<asp:HyperLink NavigateUrl="#namedAnchor" runat="server">HyperLink</asp:HyperLink>
生成的源代码如下所示:
<a href="controls/#namedAnchor">HtmlAnchor</a>
<a href="controls/#namedAnchor">HyperLink</a>
我真的只想:
<a href="#namedAnchor">HtmlAnchor</a>
<a href="#namedAnchor">HyperLink</a>
我使用HtmlAnchor
或HyperLink
类,因为我想对后台代码中的其他属性进行更改。我不想为这个需求引入一个自定义的web控件,因为我追求的需求还不够重要,不足以证明放弃传统的ASP.NET链接控件是合理的。看起来我应该能够使用ASP.NET链接控件来生成所需的链接。
发布于 2010-04-08 03:41:41
只需使用href属性,而不使用NavigateUrl属性
<asp:HyperLink href="#namedAnchor" runat="server">HyperLink</asp:HyperLink>
发布于 2012-05-15 16:26:30
要在代码背后设置HREF属性,请执行以下操作:
HyperLink link = new HyperLink();
link.Attributes.Add("href", "#" + doc.DocumentID.ToString());
link.Text = doc.DocumentNumber;
这将为您提供:
<a href="#111">blah blah</a>
发布于 2011-01-26 14:42:34
将其设置为链接上的自定义属性:
HyperLink link = new HyperLink();
link.Attributes.Add("name", doc.DocumentID.ToString());
link.Text = doc.DocumentNumber;
这将为您提供:
<a name="111">blah blah</a>
https://stackoverflow.com/questions/2595113
复制相似问题