Синтаксис ASP.NET ExpressionBuilder - выводить AppSetting внутри тега img - PullRequest
3 голосов
/ 27 января 2010

Я хотел бы использовать синтаксис 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 ]

5 голосов
/ 29 января 2010

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

<img src="<asp:Literal runat='server' Text='<%$Appsettings:STATIC_CONTENT_DOMAIN%>'/>/img/logo.jpg" />
2 голосов
/ 29 января 2010

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

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

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

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

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

0 голосов
/ 27 января 2010

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

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

...