2010-04-26 49 views
3

我正在设计的页面有一个奇怪的问题。我有这样一个链接:与runat =“服务器”代理怪异的ASP.NET锚标记

<a id="asel1" runat="server" href="#"><img id="isel1" runat="server" src="/Images/selbar/1.jpg" /></a> 

当我在结果页中查看源代码,我得到这样的:

<a href="../Cards/#" id="ctl00_ContentMainSection_CardsControl1_asel1"><img src="/Images/selbar/1.jpg" id="ctl00_ContentMainSection_CardsControl1_isel1" /></a> 

我的目标是编程方式插入一个链接,如果它是适用于在本页面问题,并保留href =“#”,如果不是的话(基本上是一个空白的锚标签)。但是现在它会将它们带到一个实际的链接,这当然不存在。

我该如何让它停止这样做?

+0

不设置在href = “#” 的工作?如果是空白锚标记,则不会呈现href标记... – Sunny 2010-04-26 20:55:38

+0

http://stackoverflow.com/questions/2595113/using-htmlanchor-or-asp-net-hyperlink-for-anchor-tag-that - 在页面中导航命名? – R0MANARMY 2010-04-27 05:46:57

回答

2

你如何插入链接?我刚刚试过如下:

<a id="asel1" runat="server" href="#"> 
    <img id="isel1" runat="server" src="/Images/selbar/1.jpg" /> 
</a> 

如果你什么都不做的链接后面的代码将呈现为:

<a href="#" id="ctl00_MainContent_asel1"> 
    <img src="/Images/selbar/1.jpg" id="ctl00_MainContent_isel1" /> 
</a> 

,如果在Page_Load你定义在href:

protected void Page_Load(object sender, EventArgs e) 
{ 
    asel1.HRef = "../Cards"; 
} 

将呈现为:

<a href="../Cards" id="ctl00_MainContent_asel1"> 
    <img src="/Images/selbar/1.jpg" id="ctl00_MainContent_isel1" /> 
</a> 

哪个其他的id mangling是预期的行为。

+0

我忽略提到链接在用户控件中;这可能会影响其行为。即使我没有代码隐藏,只是将其保留为href =“#”,它仍然希望将其更改为href =“../ Cards /#”。 – 2010-04-27 13:08:55

0

我知道这是一个老问题,但我也遇到了完全相同的问题。在我的情况下,锚标签也在ASCX文件(用户控件)内。我发现如果我删除了:

runat="server" 

然后问题就解决了。

0

我就已经取代了HREF如下:

<a id="asel1" runat="server" onclick="return false;"> 
    <img id="isel1" runat="server" src="/Images/selbar/1.jpg" /> 
</a>