2011-02-09 54 views
0

我有一個URL這在ASP.NET Repeater控件:URL編碼得到的ASP.NET Repeater控件

http://www.someurl.com/test.aspx?abc=t&bd=1 

當它被呈現給瀏覽器這被編碼爲&

我們嘗試使用中繼器中的服務器端標籤對其進行解碼,但這種方法無效。

我該如何阻止這種情況發生?

舉例:
在服務器: http://www.someurl.com/registration?pcid=FREE15&pid=a1V80000000PQ6zEAG
在客戶端: http://www.someurl.com?pcid=FREE15&pid=a1V80000000PQ6zEAG

+0

它指「和號」。 – 2011-02-09 15:52:15

+0

這是設計。根據HTML規範,&符號不能單獨存在。 http://www.w3.org/TR/xhtml1/#C_12 – 2011-02-09 16:12:06

回答

0

@aspnetdev,其下面一行顯示的URL看起來像你的數據庫,1或2什麼?

--------------------------------------------------- 
| ID | URL          | 
--------------------------------------------------- 
| 1 | http://www.example.com/?id=1&name=test  | 
| 2 | http://www.example.com/?id=1&name=test | 
--------------------------------------------------- 

這是你的轉發器看起來像什麼粗略近似?

<asp:Repeater runat="server" ID="repMain"> 
<HeaderTemplate> 
    <ul> 
</HeaderTemplate> 
<FooterTemplate> 
    </ul> 
</FooterTemplate> 
<ItemTemplate> 
    <li><a href="<%#DataBinder.Eval(Container.DataItem, "Url")%>"><%#DataBinder.Eval(Container.DataItem, "Url")%></a></li> 
</ItemTemplate> 
</asp:Repeater> 

如果你的行看起來像#2我高度建議您在列#1解碼在你的數據庫的URL。如果您使用#2方法,您將不斷遇到問題。

使用上述中繼器,列#1的樣子:

<li><a href="http://www.example.com/?id=1&name=test">http://www.example.com/?id=1&name=test</a></li> 

這實際上是無效的HTML,因爲所有文字&符號必須使用&amp;

下面是列#2會出現被轉義:

<li><a href="http://www.example.com/?id=1&amp;name=test">http://www.example.com/?id=1&amp;name=test</a></li> 

這是有效的HTML,不應該更正。

你能否詳細說明我的樣品或發表一些你自己的?