Using HtmlAnchor for anchor tag that navigates in-page named anchor

Posted by Frank Schwieterman on Stack Overflow See other posts from Stack Overflow or by Frank Schwieterman
Published on 2010-04-07T18:58:54Z Indexed on 2010/04/07 19:03 UTC
Read the original article Hit count: 587

I am trying to render a simple hyperlink that links to a named anchor within the page, for example:

<a href="#namedAnchor">scroll to down</a>

<a name="namedAnchor">down</a>

The problem is that when I use an ASP.NET control like asp:HyperLink or HtmlAnchor, the href="#namedAnchor" is rendered as href="controls/#namedAnchor" (where controls is the subdirectory where the user control containing the anchor is). Here is the code for the control, using two types of anchor controls, which both have the same problem:

<%@ 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>

The generated source looks like:

<a href="controls/#namedAnchor">HtmlAnchor</a>

<a href="controls/#namedAnchor">HyperLink</a>

I really just want:

<a href="#namedAnchor">HtmlAnchor</a>

<a href="#namedAnchor">HyperLink</a>

I am using the HtmlAnchor or HyperLink class because I want to make changes to other attributes in the code behind. I do not want to introduce a custom web control for this requirement, as the requirement I'm pursuing is not that important and it would be hard to talk the team into abandoning the traditional ASP.NET link controls. It seems like I should be able to use the ASP.NET link controls to generate the desired link.

© Stack Overflow or respective owner

Related posts about ASP.NET

Related posts about anchor-tag