2017-01-12 9 views
0

В моем .aspx кода у меня есть следующий элементЗаменить строку в databinder.eval

<asp:Image ID="GalleryImage" runat="server" ImageUrl='<%# Eval("ProductImage") %>'            /> 

возвращает значение для этого является URL изображения из сети доставки контента с образцом URL как 'http://cdn.xyz.com'

Я хочу преобразовать URL-адрес в 'https://cdn.xyz.com'

Я попытался сделать ImageUrl='<%# Eval("ProductImage").Replace("http","https") %>', который, похоже, не работает. Есть идеи?

+0

Откуда появляется ваш продукт ProductImage? Разве вы не хотите его там менять? на стороне '.cs' (код позади)? –

+0

@teovankot, у меня нет доступа к коду. Он сидит внутри dll – ScottyDoesKnow

+0

не уверен, но вы пробовали это: '((string) Eval (« ProductImage »)). Замените (« http »,« https »)'? –

ответ

4

Вы можете обращаться с этим нравится:

<%# ((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") %>' 
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.

 Смежные вопросы

  • Нет связанных вопросов^_^