2011-02-09 2 views
0

로 인코딩하기 내가 ASP.NET 리피터 컨트롤에있는 URL이 있습니다URL은 ASP.NET 리피터 컨트롤

가 브라우저에 렌더링됩니다 때이 &로 인코딩됩니다
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

"앰퍼샌드"를 나타냅니다. –

+0

이것은 의도적으로 설계된 것입니다. HTML 스펙에 따라 앰퍼샌드 "&"는 단독으로 존재할 수 없습니다. http://www.w3.org/TR/xhtml1/#C_12 –

+0

@Chris, &는 URL의 일부입니다. – aspnetdev

답변

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> 

당신의 행 I # 2처럼 보이는 경우

매우은 행 # 1과 데이터베이스의 URL을 디코딩하는 것이 좋습니다. # 2 방법을 사용하면 끊임없이 문제가 발생합니다. 모든 문자 앰퍼샌드가 &amp; 여기

은 행 # 2이 나타납니다 방법 사용하여 이스케이프해야하기 때문에 실제로 잘못된 HTML입니다

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

: 같은 위의 리피터를 사용

, 행 # 1 볼 것이다

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

이것은 유효한 HTML이므로 수정해서는 안됩니다.

내 샘플을 정교하게 분석하거나 자신의 게시물을 게시 할 수 있습니까?

+0

이것은 클라이언트 쪽 리피터가 어떻게 보이는지입니다. http://paste.pocoo.org/show/335173/ OnClientClick은 & – aspnetdev

관련 문제