Синтаксис ASP.NET ExpressionBuilder - выводить AppSetting внутри тега img

Я хотел бы использовать синтаксис ExpressionBuilder в ASP.NET для динамического извлечения домена статического содержимого из 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" />

Обратите внимание, я не могу использовать синтаксис <% =%>, потому что моя страница ASPX должна быть CompilationMode="never". (Я использую синтаксис ExpressionBuilder по той причине, что он работает на страницах без компиляции)

Любые идеи о том, как я могу это сделать?

3 ответа

Решение

Этот подход работал для меня (не очень читаемый:))

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

Возможно, вы захотите написать собственный конструктор выражений - их не так сложно написать. Вот несколько уроков:

Вы можете иметь свой собственный синтаксис выражения, такой как:

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

Затем вы разберете все после ":" и создадите нужный вам URL.

Я думаю, что конструкторы выражений должны использоваться как "значения свойств", поэтому вы не можете использовать их полностью самостоятельно. Вам все равно придется использовать что-то вроде <img runat="server"> или <asp:Image> контроль или <img> с <asp:Literal> внутри него.

Я считаю, что вам нужно использовать серверный элемент управления 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" />

Я думаю, что это невозможно, но я думаю, что стоит попробовать. Попробуйте и посмотрите...

Другие вопросы по тегам