ссылка на appSettings из пользовательских элементов управления - PullRequest
1 голос
/ 14 мая 2009

В моем .ascx usercontrol я пытаюсь динамически генерировать ссылки, используя значение, которое я сохранил в web.config.

<a href="<%$appSettings.MYPATH%>/file.aspx">link</a>

и когда я пытаюсь запустить, я получаю ошибку синтаксического анализатора

Literal expressions like '<%$appSettings.MYPATH %>' are not allowed. Use <asp:Literal runat="server" Text="<%$appSettings.MYPATH%>" /> instead.

Я знаю, что, возможно, мне не хватает чего-то относительно незначительного.

Ответы [ 5 ]

4 голосов
/ 14 мая 2009
<%= ConfigurationManager.AppSettings["myKey"] %>

РЕДАКТИРОВАТЬ: Не забудьте =

2 голосов
/ 14 мая 2009
    <a href="<%= System.Configuration.ConfigurationManager.appSettings("MYPATH") %>">link</a>

должно работать (по крайней мере, на сервере IIS, который я использую). (К сожалению, это более многословно)

1 голос
/ 14 мая 2009

Попробуйте вместо этого

.ascx

<asp:Literal ID="Literal1" runat="server"></asp:Literal>

в коде позади

Literal1.Text = "<a href='" + appSettings.MYPATH + "'/file.aspx">link</a>"
0 голосов
/ 15 декабря 2012

Используйте двоеточие вместо точки и добавьте runat="server":

<a href="<%$ AppSettings: MYPATH %>/file.aspx">link</a>

Документация не очень ясна по этому вопросу, но выражения ASP.Net предназначены для использования в тегах сервера. Таким образом, если вы хотите использовать его в обычном HTML-теге, вы должны добавить runat="server", чтобы тег обрабатывался на сервере, где будет оцениваться выражение.

0 голосов
/ 15 ноября 2012

Более точный ответ будет следующим:

<a href="<%= System.Configuration.ConfigurationManager.AppSettings["param_name"] %>">Link</a>
...