w3schools una seccion página punto pagina otra misma link especifica enlaces enlace ejemplos efecto dentro cómo con añadir anclas anclado ancla asp.net anchor

una - Usando HtmlAnchor o ASP.NET HyperLink para la etiqueta de ancla que navega en la página llamada ancla



enlaces dentro de la misma página html (3)

En lugar de usar la propiedad NavigateUrl, solo usa la propiedad href

<asp:HyperLink href="#namedAnchor" runat="server">HyperLink</asp:HyperLink>

Estoy tratando de representar un hipervínculo simple que enlaza a un ancla con nombre dentro de la página, por ejemplo:

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

El problema es que cuando uso un control ASP.NET como asp:HyperLink o HtmlAnchor , href="#namedAnchor" se representa como href="controls/#namedAnchor" (donde controls es el subdirectorio donde el usuario controla el ancla es). Aquí está el código para el control, utilizando dos tipos de controles de anclaje, que tienen el mismo problema:

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

La fuente generada se ve así:

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

Realmente solo quiero:

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

Estoy usando la clase HtmlAnchor o HyperLink porque quiero hacer cambios a otros atributos en el código que está detrás. No quiero introducir un control web personalizado para este requisito, ya que el requisito que estoy cumpliendo no es lo suficientemente importante como para justificar el abandono de los controles de enlace tradicionales de ASP.NET. Parece que debería poder usar los controles de enlace de ASP.NET para generar el enlace deseado.


Establézcalo como una propiedad personalizada en el enlace:

HyperLink link = new HyperLink(); link.Attributes.Add("name", doc.DocumentID.ToString()); link.Text = doc.DocumentNumber;

Esto te dará:

<a name="111">blah blah</a>


Para establecer la propiedad HREF en codebehind:

HyperLink link = new HyperLink(); link.Attributes.Add("href", "#" + doc.DocumentID.ToString()); link.Text = doc.DocumentNumber;

Esto te dará:

<a href="#111">blah blah</a>