2010-11-21 1 views
0

У меня есть BulletedList с DisplayMode="HyperLink".Как сделать гиперссылку asp.net, чтобы остановить кодирование URL?

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

добавить элементы в список с этим кодом: LevelsList.Items.Add (новый ListItem (curSubPage.PageName, curSubPage.shortURL));

Ссылки URL содержат древнееврейские строки, и они получают закодированные:

Разметка asp.net создает что-то вроде этого:

<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> 

Хотя право разметки должно быть:

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

Как исправить это?

+0

Google, похоже, видит эти 2 URL-адреса как разные страницы, а это значит, что это двойной контент. – IgalSt

+0

Возможно, вы можете проверить информацию о культуре в вашей программе asp.net? – xandy

ответ

0

Из быстрого расследования, похоже, что ASP.NET кодирует его в своем «низкоуровневом» коде, поэтому нет прямого решения.

Вы можете просто написать свой собственный Маркированный список с помощью пользовательского Repeater:

<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> 

и связать его в код:

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(); 

Обратите внимание, что от того, что я видел, IE8 по-прежнему делает не поддерживает не-английский URL-адрес - указанная выше ссылка не доступна в браузере, в то время как Chrome позволяет вам щелкнуть по ней, а также закодировать URL-адрес на что-то еще.

+0

Спасибо за ответ. Эти ссылки можно щелкнуть в IE7 и 8, если они также не закодированы – IgalSt