网址为&在ASP.NET转发器控件中进行编码

时间:2011-02-09 15:48:40

标签: asp.net character-encoding

我有一个ASP.NET转发器控件中的URL:

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

1 个答案:

答案 0 :(得分:0)

@aspnetdev,下面的哪一行显示数据库中的网址是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行所示。如果使用#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,不应更正。

您能详细说明我的样品或发布自己的样品吗?