2010-04-26 53 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>