2009-06-02 34 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 + "'>"; 
} 
相关问题