asp.net用户控件,让htmlAnchor解析为href ="#"

Hig*_*ead 24 c# asp.net user-controls

如何让服务器控件HTMLAnchor具有href ="#".它不断解析控制路径的"#".

<a href="#" runat="server" />
resolves to: <a href="../ControlPath/#">
Run Code Online (Sandbox Code Playgroud)

我似乎无法得到谷歌搜索给我我想要的结果所以我想我会在这里问.

编辑:语法.

删除runat服务器不是一个选项.它在后端被操纵,这只是一个简化.

小智 29

我有同样的问题,这是我如何解决它:

原始代码

用户控制:

<a id="foo" runat="server">...</a>
Run Code Online (Sandbox Code Playgroud)

代码背后:

foo.Attributes.Add("href", "#");
Run Code Online (Sandbox Code Playgroud)

输出:

<a id="..." href="../Shared/Controls/#">...</a>
Run Code Online (Sandbox Code Playgroud)

更新的代码

用户控制:

<asp:HyperLink id="foo" runat="server">...</asp:HyperLink>
Run Code Online (Sandbox Code Playgroud)

代码背后:

foo.Attributes.Add("href", "#");
Run Code Online (Sandbox Code Playgroud)

输出:

<a id="..." href="#">...</a>
Run Code Online (Sandbox Code Playgroud)


Bre*_*itz 9

使用PageParser.GetCompiledPageInstance()或重写url时,我遇到了类似的问题.出于某种原因,HtmlAnchor总是错误地解决(类似于上面的内容).

结束只使用HtmlGenericControl,因为无论如何你都在操作服务器端,这可能是你的可能.

HtmlGenericControl anchor = new HtmlGenericControl("a");
anchor.Attributes.Add("href", "#");
Run Code Online (Sandbox Code Playgroud)