2009-06-02 15 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

EDIT 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

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 + "'>"; 
} 
関連する問題