2010-05-11 36 views
2

如何在頁面呈現時從列表項中的錨定標記編碼停止ASP.Net?阻止ASP.NET在輸出上對字符串進行編碼

我有一個對象的集合。每個對象都有一個鏈接屬性。我做了一個foreach,並嘗試在BulletedList中輸出鏈接,但ASP編碼了所有鏈接。

有什麼想法?謝謝!

這是違規的代碼片段。當用戶選擇一個專業,我用的是SelectedIndexChange事件清除並添加鏈接到的BulletedList:

if (SpecialtyList.SelectedIndex > 0) 
    { 
     PhysicianLinks.Items.Clear(); 

     foreach (Physician doc in docs) 
     { 
      if (doc.Specialties.Contains(SpecialtyList.SelectedValue)) 
      { 
       PhysicianLinks.Items.Add(new ListItem("<a href=\"" + doc.Link + "\">" + doc.FullName + "</a>"));  
      } 
     } 
    } 
+3

您可以發佈您的代碼? – Oded 2010-05-11 19:19:13

+0

不清楚的問題 – Midhat 2010-05-11 19:26:08

+0

@Midhat上帝禁止你投降或投票結束......?! – 2010-05-11 20:58:53

回答

6

,可隨時更換帶中繼器的項目列表

而不是PhysicianLinks.Items.Add(new ListItem("<a href=\"" + doc.Link + "\">" + doc.FullName + "</a>"));,將doc.Link添加到列表對象並使用它來綁定中繼器。您可以包括您在轉發的ItemTemplate

喜歡的東西

List<string> docLinks=new List<string>(); 
    if (SpecialtyList.SelectedIndex > 0) 
     { 


      foreach (Physician doc in docs) 
      { 
       if (doc.Specialties.Contains(SpecialtyList.SelectedValue)) 
       { 
        docLinks.add(doc.Link) ; 
       } 
      } 
      Repeater1.DataSource=docLinks; 
      Repeater1.DataBind(); 
     } 

並在ASPX

想要的任何HTML
<ul> 
     <asp:Repeater ID="Repeater1" runat="server"> 
      <ItemTemplate> 
      <li><a href="<%# Container.DataItem.ToString()%>"><%# Container.DataItem.ToString()%></a></li> 
      </ItemTemplate> 
     </asp:Repeater> 
</ul> 
0

舉個例子...對象的確切類型/值的,什麼是被渲染爲HTML。

如果你談論的是ASP.NET改變&amp;&amp;amp; ...有時你可以避開這樣的事情通過使用ASCII代碼版本,而不是HTML捷徑:&#38;

相關問題