ASP.NET ExpressionBuilder语法 - 在img标记内输出AppSetting

时间:2010-01-27 18:32:40

标签: asp.net appsettings expressionbuilder compilationmode

我想使用ASP.NET的ExpressionBuilder语法从AppSetting动态检索静态内容的域。

我使用以下语法,但不起作用:

<img src="<%$Appsettings:STATIC_CONTENT_DOMAIN %>/img/logo.jpg" alt="logo" width="176" height="159" />

仅供参考,所需的HTML输出是:

<img src="http://static.myserver.com/img/logo.jpg" alt="logo" width="176" height="159" />

请注意,我不能使用&lt;%=%&gt;语法,因为我的ASPX页面需要是CompilationMode =“never”。 (我使用ExpressionBuilder语法的原因是它在无编译页面中工作)

关于我如何做到这一点的任何想法?

3 个答案:

答案 0 :(得分:5)

这种方法对我有用(不太可读:) ...

<img src="<asp:Literal runat='server' Text='<%$Appsettings:STATIC_CONTENT_DOMAIN%>'/>/img/logo.jpg" />

答案 1 :(得分:2)

您可能需要考虑编写自定义表达式构建器 - 它们不是很难编写。以下是一些教程:

您可以拥有自己的表达式语法,例如:

<%$ MyCdnUrl: Static, '/img/logo.jpg' %>

然后你将解析“:”之后的所有内容并构建你需要的URL。

我认为表达式构建器必须用作“属性值”,因此您不能完全使用它们。您仍然必须使用<img runat="server"><asp:Image>控件或<img>内置<asp:Literal>的内容。

答案 2 :(得分:0)

我相信你需要使用服务器端的asp.net控件,例如:

<asp:Image ID="MyImage" runat="server" ImageUrl="<%$Appsettings:STATIC_CONTENT_DOMAIN %>" />

我不知道你是否可以将语句与静态信息结合起来,例如:

<asp:Image ID="MyImage" runat="server" ImageUrl="<%$Appsettings:STATIC_CONTENT_DOMAIN %>/img/logo.jpg" />

我的猜测是不可能的,但我想这值得一试。试一试,看看......