主题图片网址重新定位asp.net

时间:2009-06-12 02:53:27

标签: asp.net image url themes rebasing

我正在实施主题,以便根据请求的网址重新命名现有网站(徽标,颜色,图片等)。我知道如何做到这一点,并使皮肤工作正常,除了一些与图像的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"/>

任何指向正确方向的人都会受到赞赏。

大卫

4 个答案:

答案 0 :(得分:2)

在数据绑定控件中使用绑定语法(观看单引号和双引号):

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

答案 1 :(得分:0)

是否有理由不能将图像转储到与主题相同的文件夹中?如果您将图像说例如:“image.gif”放入主题文件夹中,那么您可以直接在皮肤中引用它。

ImageUrl="image.gif"

当您在页面中的控件上应用此外观时,这将解决得很好。也比尝试动态URL更容易。

答案 2 :(得分:0)

您也可以使用“Images / BobIcon-Green.png”作为网址。 ASP将负责将Url解析为您主题中的目录。

答案 3 :(得分:0)

这是完成任务的正确方法:

使用UrlProperty属性装饰您的媒体资源,这将告诉ASP.NET自动将您的部分网址转换为正确的网址。

使用“〜/ AppThemes /”+ Page.Theme +“/ Images / BobIcon-Green.png”可以解决这个问题,但这不是首选方式,因为你需要自己完成所有的工作,这总是很好的做法将所有工作留给ASP