标记问题中的AppSettings

时间:2009-11-05 16:42:06

标签: asp.net appsettings

我想把它放在我的标记中:

<script type="text/javascript" src="<%$ AppSettings:proxyScriptUrl %>"></script>

但出于某种原因,这是不被接受的。我在这里做错了什么?

要求是我不使用辅助方法,而是在标记中使用了expressionbuilder。

2 个答案:

答案 0 :(得分:5)

当我这样做时,我通常会创建一个帮助程序类,我喜欢调用Config并在那里为相关的应用程序设置放置一个静态属性。

然后你的代码将成为:

<script type="text/javascript" src="<%=Config.ProxyScriptUrl%>"/>

这样做的其他一些好处是,如果我决定将ProxyScriptUrl移动到不同的配置机制,我只需要修改一个类。您的配置类可能如下所示:

public static class Config
{
    public static string ProxyScriptUrl 
    {
        get
        {
            return WebConfigurationManager.AppSettings["proxyScriptUrl "];
        }
    }
}

答案 1 :(得分:5)

根据documentation,这是不允许的:

  

如果要将表达式用作页面或控件上的静态值,可以将表达式用作ASP.NET服务器控件的一部分。典型的策略是添加Literal控件并将其Text属性设置为表达式。例如,要在每个页面的底部放置版权声明,您可以使用以下内容:

<p align="center">
  <asp:Literal runat="server" text="<%$ AppSettings: copyright %>"/>
</p>

如果想在aspx文件中完成所有操作,这可能会有所帮助:

<script type='text/javascript' src='<asp:Literal id="literal1" runat="server" text="<%$ AppSettings: jsSource %>" />'></script>

请注意文本变量中令人不快的单引号 - 尝试使用转义双引号会导致“格式错误的脚本标记”错误。


编辑:道歉 - 我已经交换了订单,这确实有效。