在我的.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.
我知道我可能错过了一些相对较小的东西。
答案 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"
,以便在将评估表达式的服务器上处理标记。