我想使用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语法的原因是它在无编译页面中工作)
关于我如何做到这一点的任何想法?
答案 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" />
我的猜测是不可能的,但我想这值得一试。试一试,看看......