0

我正在实施主题以使现有网站能够根据请求的 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"/>

任何正确方向的指针将不胜感激。

大卫

4

4 回答 4

2

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

<DisplayImageChecked Url='<%# "~/AppThemes/" + Page.Theme + "/Images/BobIcon-Green.png" %>' />
于 2009-06-12T14:55:17.760 回答
0

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

于 2010-08-19T09:02:30.950 回答
0

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

ImageUrl="image.gif"

当您将此皮肤应用于页面中的控件时,这将很好地解决。也比尝试做动态 URL 的事情容易得多。

于 2009-06-12T03:05:13.503 回答
0

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

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

使用 "~/AppThemes/" + Page.Theme + "/Images/BobIcon-Green.png" 可以解决问题,但这不是首选方式,因为您需要自己完成所有工作,将所有工作都保留下来总是好的做法对 ASP 的工作

于 2013-03-19T13:17:14.843 回答