2010-11-21 6 views
0

BulletedListDisplayMode="HyperLink"이 있습니다.URL 인코딩을 중지하는 asp.net 하이퍼 링크를 만드는 방법?

<asp:BulletedList runat="server" DisplayMode="HyperLink" ID="LevelsList"></asp:BulletedList> 

나는이 코드를 사용하여 목록에 항목을 추가 LevelsList.Items.Add (새을 ListItem (curSubPage.PageName, curSubPage.shortURL));

의 URL 링크는 히브리어 문자열을 포함하고 인코딩 얻을 : 올바른 마크 업을해야하지만

<a href="%d7%91%d7%a0%d7%99%d7%99%d7%aa_%d7%90%d7%a4%d7%9c%d7%99%d7%a7%d7%a6%d7%99%d7%95%d7%aa_%d7%90%d7%99%d7%a0%d7%98%d7%a8%d7%a0%d7%98%d7%99%d7%95%d7%aa">בניית אפליקציות אינטרנטיות</a> 

:하여 asp.net 생성

마크 업이 그 같은 것입니다

<a href="בניית_אפליקציות_אינטרנטיות">בניית אפליקציות אינטרנטיות</a> 

어떻게 수정합니까?

+0

Google은이 2 개의 URL을 다른 페이지로 보는 것으로 보입니다. 이중 콘텐츠를 의미합니다. – IgalSt

+0

어쩌면 당신은 asp.net 프로그램의 문화 정보를 확인할 수 있습니까? – xandy

답변

0

빠른 조사에서 ASP.NET은 "낮은 수준"코드로 인코딩하므로 직접적인 해결책이 아닙니다.

<asp:Repeater id="rptLevelsList" runat="server"> 
    <HeaderTemplate><ul></HeaderTemplate> 
    <FooterTemplate></ul></FooterTemplate> 
    <ItemTemplate> 
     <li><a href="<%# DataBinder.Eval(Container.DataItem, "Value") %>"><%# DataBinder.Eval(Container.DataItem, "Text") %></a></li> 
    </ItemTemplate> 
</asp:Repeater> 

그리고 뒤에 코드에서 바인딩 :

당신은 단순히 자신의 글 머리 기호 목록 사용하여 사용자 정의 중계기를 쓸 수 있습니다 내가 본 것과, IE8은 여전히 ​​않는다는 것을

List<ListItem> links = new List<ListItem>(); 
links.Add(new ListItem("my page", "Somepage.aspx")); 
links.Add(new ListItem("משהו בעברית", "http://www.כתובת_כלשהי_כאן.com")); 
rptLevelsList.DataSource = links; 
rptLevelsList.DataBind(); 

주 영어가 아닌 URL 주소는 지원하지 않습니다. 위의 링크는 해당 브라우저에서 클릭 할 수 없지만 Chrome은 클릭 만 허용하지만 URL은 다른 URL로 인코딩합니다.

+0

답해 주셔서 감사합니다. 이러한 링크는 IE7과 8에서 클릭 가능하며 인코딩되지도 않습니다. – IgalSt

관련 문제