2009-06-02 65 views
1

下面的代碼:爲什麼簡單的<% Eval() %>可以在IE和Chrome中使用,而不是在Firefox中使用?

<asp:HyperLink ID="Image1_Link" runat="server" 
Text='<% "< img src=" + PhotoGalleryBaseUrl + Eval("image_file_name") + ">" %>'> 
</asp:HyperLink> 
Image Size: 
<asp:Label ID="image_sizeLabel" runat="server" Text='<%# Eval("image_size") %>'> 
</asp:Label><br /> 

呈現這樣在Chrome和IE: Right Rendering http://cp.images.s3.amazonaws.com/ForumImages/cp-6-2-2009-4.53.28%20PM-03.png

而且在Firefox呈現這樣的(這顯然是錯誤的): Wrong Rendering http://cp.images.s3.amazonaws.com/ForumImages/cp-6-2-2009-4.55.10%20PM-04.png

編輯2:把#<%前面的#號不起作用。 #號在所有瀏覽器中呈現錯誤。

回答

1

我相信這是因爲你在這裏錯過了一個「#」語句。試一試(這是未經測試的)。

Text='<% "< img src= 
    // should be 
    Text='<%# "< img src= 

[編輯]

你能與此代碼重試一下,看看它是否工作?

<asp:HyperLink ID="Image1_Link" runat="server"> 
<%# "<img src='" + PhotoGalleryBaseUrl + Eval("image_file_name") + "' />" %> 
</asp:HyperLink> 
Image Size: 
<asp:Label ID="image_sizeLabel" runat="server" Text='<%# Eval("image_size") %>'> 
</asp:Label><br /> 
+0

是。這也是我的第一印象,但結果是#號在任何瀏覽器中都不起作用。謝謝。 – Geo 2009-06-02 22:03:05

2

你看過呈現的頁面源代碼嗎?如果是這樣,它會產生相同的來源?

1

您正在設置鏈接的文本爲一些奇怪的字符串。如果名稱中有空格,則引號在構造的字符串中不起作用。

如果您確實想在鏈接中顯示圖像,請改爲使用ImageUrl。

<%...%>被髮送到瀏覽器。 IE和Chrome只是忽視它作爲評論。

1

另一種選擇是嘗試:

<asp:HyperLink ID="HyperLink1" runat="server" 
Text='<%# GetImageString(PhotoGalleryBaseUrl + Eval("image_file_name").ToString())%>'> 
</asp:HyperLink> 

(不要忘了在評估和演示串轉換)

凡GetImageString()是頁面上的公共方法:

public string GetImageString(string imageFilePath) 
{ 
return "<img src='" + imageFilePath + "'>"; 
} 
相關問題