基于asp.net的主题图像URL

基于asp.net的主题图像URL,asp.net,image,url,themes,rebasing,Asp.net,Image,Url,Themes,Rebasing,我正在实施的主题,使现有的网站能够重新命名(标志,颜色,图像等)根据请求的网址。我知道如何做到这一点,并已使皮肤工作良好,除了一些例外有关的URL的图像 具体来说,我有一个控制属性,它是不可行的皮肤。在实施主题之前,它看起来是这样的: <DisplayImageChecked Url="~/Images/BobIcon-Green.png" /> <DisplayImageChecked Url="~/AppThemes/<%= Page.Theme %>/Ima

我正在实施的主题,使现有的网站能够重新命名(标志,颜色,图像等)根据请求的网址。我知道如何做到这一点,并已使皮肤工作良好,除了一些例外有关的URL的图像

具体来说,我有一个控制属性,它是不可行的皮肤。在实施主题之前,它看起来是这样的:

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

显然,这不适用于主题。因此,经过反复试验和阅读,我正试图这样实现它:

<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

有什么原因不能将图像转储到与主题相同的文件夹中?如果你把一张图片放进主题文件夹,比如说:“image.gif”,那么你可以直接在皮肤中引用它

ImageUrl="image.gif"

当您将此外观应用于页面中的控件时,这将很好地解决。也比尝试使用动态URL简单得多。

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


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

以下是执行任务的正确方法:

使用UrlProperty属性修饰属性,这将告诉ASP.NET自动将部分URL转换为正确的URL


使用“~/AppThemes/”+Page.Theme+“/Images/BobIcon Green.png”可以达到目的,但这不是首选方法,因为您需要自己完成所有工作,将所有工作留给ASP始终是一种好的做法,它是否包含在数据绑定控件(如Repeater、ListView等)中?是的,它位于数据绑定控件中。它是Developer Express的ASPxGridView上GridViewDataCheckColumn的属性。不幸的是,这没有帮助,因为我这里也涉及母版页。这是在AspxGridViews中使用它时的最佳方法。如果OP在主文件夹中引用它,那么会发生什么?