2

我试图把它放在我的标记中:

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

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

要求是我不使用辅助方法,而是在标记中使用表达式构建器。

4

2 回答 2

5

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

然后您的代码将变为:

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

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

public static class Config
{
    public static string ProxyScriptUrl 
    {
        get
        {
            return WebConfigurationManager.AppSettings["proxyScriptUrl "];
        }
    }
}
于 2009-11-05T16:47:36.013 回答
5

根据文档,这是不允许的:

如果要将表达式用作页面或控件上的静态值,请将表达式用作 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>

请注意文本变量中令人不快的单引号 - 试图对我们进行转义的双引号会导致“脚本标签格式错误”错误。


编辑:道歉 - 我已经交换了围绕这个的顺序确实有效。

于 2009-11-05T17:23:52.623 回答