从usercontrols引用appSettings

时间:2009-05-14 17:41:40

标签: asp.net user-controls web-config appsettings

在我的.ascx用户控件中,我试图使用存储在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 个答案:

答案 0 :(得分:4)

<%= ConfigurationManager.AppSettings["myKey"] %>

编辑:不要忘记 =

答案 1 :(得分:2)

    <a href="<%= System.Configuration.ConfigurationManager.appSettings("MYPATH") %>">link</a>

应该工作(它至少在我使用的IIS服务器上)。 (不幸的是,它更冗长)

答案 2 :(得分:1)

试试这个

的.ascx

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

中的代码

Literal1.Text = "<a href='" + appSettings.MYPATH + "'/file.aspx">link</a>"

答案 3 :(得分:0)

接下来会有更准确的答案:

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

答案 4 :(得分:0)

使用冒号而不是点并添加runat="server"

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

The documentation在这一点上不是很清楚,但ASP.Net表达式是在服务器标签中使用的。因此,如果要在普通的html标记中使用一个,则必须添加runat="server",以便在将评估表达式的服务器上处理标记。