2009-01-18 15 views
2

我有一箇中繼器控件,其中<%#DataBinder.Eval(Container.DataItem,「Display」)%>部分不會' t出現。 「Display」存儲的代碼設置如下:<script> ...</script>裏面的中繼器控制代碼沒有顯示在頁面呈現的源代碼中

item.Display = "<script type='text/javascript'>AudioPlayer.embed('ffcedea7- 
4822-465f-85b6-89924f7b81fa', {soundFile: 'http://s3.amazonaws.com/blah/af8g7fd3-1793 
-4b5e-92b7-9d11ad1cc19c.mp3'});</script>"; 

頁面加載後,音頻嵌入文件不會顯示。該代碼甚至不在源代碼中顯示。如果我在結束腳本標記之後添加一個隨機字符串,該隨機字符串將顯示出來。

item.Display = "<script type='text/javascript'>AudioPlayer.embed('ffcedea7-4822-4 
65f-85b6-89924f7b81fa', {soundFile: 'http://s3.amazonaws.com/blah/af8g7fd3-1793-4b 
5e-92b7-9d11ad1cc19c.mp3'});</script> THIS IS THE RANDOM STRING"; 

因此,在頁面源代碼中,它將有「這是隨機字符串」,但不是腳本部分。

有誰知道是什麼原因導致這個問題,以及它如何解決?謝謝!

編輯:這裏是轉發器的代碼:

<asp:Repeater ID="repeaterAddable" runat="server"> 
    <ItemTemplate> 
     <div class="background-white"> 
      <div style="padding: 15px;"> 
       <table style="width: 100%" cellspacing="5"> 
        <tr> 
         <td colspan="3" align="right"> 
          Include this? <input type="checkbox" name="include<%#DataBinder.Eval(Container.DataItem, "Index")%>" /> 
         </td> 
        </tr> 
        <tr> 
         <td style="width: 30%;" valign="top"> 

         </td> 
         <td style="width: 30%;" valign="top"> 
          <div class="media"> 

           <%#DataBinder.Eval(Container.DataItem, "Display")%> 

          </div> 
         </td> 
         <td style="width: 30%;" valign="top"> 

         </td> 
        </tr> 
       </table> 
      </div> 
     </div> 
     <br /> 
    </ItemTemplate> 
</asp:Repeater> 
+0

你能複製和粘貼的碼? – 2009-01-18 21:46:35

+0

我根本沒有看到任何

0

也許你有一些安全設置您的網頁或webconfig上...

我試圖模仿你的情況在一個全新的頁面,但它實際工作。

public class A 
{ 
    public string Display { get; set; } 
} 

protected void Page_Load(object sender, EventArgs e) 
{ 
    var list = new List<A>(); 

    var a = new A(); 
    a.Display = "<script>alert('hi')</script>S<br/>"; 

    list.Add(a); 

    rep.DataSource = list; 
    rep.DataBind(); 
} 

,並在頁面

<asp:Repeater ID="rep" runat="server"> 
    <ItemTemplate> 
     <%# DataBinder.Eval(Container.DataItem, "Display") %> 
    </ItemTemplate> 
</asp:Repeater> 

或許你可以嘗試設置與DisplayHttpUtility.UrlEncodeHttpUtility.UrlDecode得到它...

相關問題