URL изображения темы Перебазирование asp.net - PullRequest
0 голосов
/ 12 июня 2009

Я внедряю темы, позволяющие переименовать существующий веб-сайт (логотипы, цвета, изображения и т. Д.) В зависимости от запрашивающего URL Я понимаю, как это сделать, и скины работают нормально, за исключением некоторых исключений, связанных с URL-адресами изображений.

В частности, у меня есть свойство управления, которое невозможно для кожи. До реализации темы это выглядело так:

<DisplayImageChecked Url="~/Images/BobIcon-Green.png" />

Очевидно, что не будет работать с темами. Поэтому после долгих проб и ошибок и чтения я пытаюсь реализовать это так:

<DisplayImageChecked Url="~/AppThemes/<%= Page.Theme %>/Images/BobIcon-Green.png" />

Однако это не работает. Сгенерированный HTML выглядит так:

<img src="AppThemes/%3C%25=%20Page.Theme%20%25%3E/Images/BobIcon-Green.png"/>

Любые указатели в правильном направлении приветствуются.

David

Ответы [ 4 ]

2 голосов
/ 12 июня 2009

Используйте синтаксис привязки в элементе управления с привязкой к данным (смотрите одинарные и двойные кавычки):

<DisplayImageChecked Url='<%# "~/AppThemes/" + Page.Theme + "/Images/BobIcon-Green.png" %>' />
0 голосов
/ 19 марта 2013

Вот правильный способ выполнить вашу задачу:

Украсьте вашу собственность атрибутом UrlProperty, это скажет ASP.NET автоматически преобразовать ваш частичный URL в правильный URL.

Использование "~ / AppThemes /" + Page.Theme + "/Images/BobIcon-Green.png" поможет, но это НЕ предпочтительный способ, потому что вам нужно делать всю работу самостоятельно, и это всегда хорошая практика. оставить всю работу на ASP

0 голосов
/ 19 августа 2010

Вы также можете использовать «Images / BobIcon-Green.png» в качестве URL. ASP позаботится о разрешении URL в каталог в вашей теме.

0 голосов
/ 12 июня 2009

Есть ли причина, по которой вы не можете просто записать изображения в ту же папку, что и тема? Если вы поместите изображение, скажем, например: «image.gif», в папку темы, то вы можете просто обратиться к нему прямо в своей теме.

ImageUrl="image.gif"

Это разрешится очень хорошо, если вы примените этот скин к элементу управления на своей странице. Также гораздо проще, чем пытаться сделать динамический URL.

...