我试图呈现一个简单的超链接,链接到页面中的一个命名的锚,例如:
<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链接控件来生成所需的链接。
4条答案
按热度按时间2wnc66cl1#
不使用NavigateUrl属性,而只使用href属性
c90pui9n2#
要在codebeath中设置HREF属性,请执行以下操作:
这将为您提供给予:
z9ju0rcb3#
将其设置为链接上的自定义属性:
这将为您提供给予:
brgchamk4#
如果您必须使用NavigateUrl属性(有时这是必要的),则可以使用:用途: