替换databinder.eval中的字符串

时间:2017-01-12 07:29:04

标签: c# asp.net webforms

在我的.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") %>'似乎不起作用。有什么想法吗?

2 个答案:

答案 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/Convertobject返回到String,然后在Replace上使用String方法。