在我的.aspx代码中,我有以下元素
<asp:Image ID="GalleryImage" runat="server" ImageUrl='<%# Eval("ProductImage") %>' />
为此返回的值是来自内容投放网络的图片URl,其中包含样本网址'http://cdn.xyz.com'
我想将网址转换为'https://cdn.xyz.com'
我试图做ImageUrl='<%# Eval("ProductImage").Replace("http","https") %>'
似乎不起作用。有什么想法吗?
答案 0 :(得分:7)
您可以像:
一样处理它<%# ((string)Eval("ProductImage")).Replace("http", "https") %>
如果您的字符串可以是Null
<%# ((string)Eval("ProductImage") ?? string.Empty).Replace("http", "https") %>
它将是:
<asp:Image ID="GalleryImage" runat="server" ImageUrl='<%# ((string)Eval("ProductImage") ?? string.Empty).Replace("http", "https") %>'
或者,如果您确定您的字符串在任何情况下都不是Null
。
<asp:Image ID="GalleryImage" runat="server" ImageUrl='<%# ((string)Eval("ProductImage")).Replace("http", "https") %>'
答案 1 :(得分:2)
试试这个,您可能需要先转换为String
Replace
才能正常工作:
<asp:Image ID="GalleryImage" runat="server" ImageUrl='<%# Eval("ProductImage").ToString().Replace("http","https") %>'
Eval
返回object
,而Replace
无效object
。您需要首先Cast/Convert
将object
返回到String
,然后在Replace
上使用String
方法。