如何在HTML标记中读取web.config的APP key设置

14

我有一个使用第三方ActiveX控件的ASP.NET站点。我需要在HTML页面的OBJECT标记中传递一些参数。如果我将这些参数硬编码到HTML中,一切都能正常工作。

我想将这些参数放在我的web.config中,使用应用程序设置的“键/值”对。

我的问题是,我无法在HTML标记中读取应用程序键设置,并成功地将它们作为参数传递。我可以从服务器端代码后台很好地读取它们。

如何在客户端HTML标记中正确读取这些设置?

谢谢

5个回答

29

除了其他人提到的使用<%=ConfigurationManager.AppSettings["MyAttribute"]%>外,您还可以使用表达式构建器。语法有点不同。您可以使用<%$ AppSettings: MyAttribute %>,如下所示:

<object id="myObjectID attr="<%$ AppSettings: MyAttribute %>" ...>
如果你只是将appSettings的值直接转储到静态HTML中(我假设在这个例子中是这样),那么这两种方法在实际用途上是相同的。
但是,表达式生成器的好处在于,你可以使用它们将appSettings的值声明性地分配给Web控件属性,这是使用<%=...%>语法 无法 实现的。也就是说,使用表达式生成器,你可以像这样做:
<asp:Label runat="server" ... Text="<%$ AppSettings: MyAttribute %>" />

你可以做以下操作:

<asp:Label runat="server" ... Text="<%=ConfigurationManager.AppSettings["MyAttribute"]%>" />

11

以下代码:

<%$ AppSettings: MyAttribute %>

不兼容通用的HTML标记和JavaScript函数!适用于asp标记。

然而

<%=ConfigurationManager.AppSettings("MyAttribute")%>

通常情况下,HTML标记真正起作用。

所以

<%=ConfigurationManager.AppSettings("MyAttribute")%>

是我的推荐!


使用以下方式<%=ConfigurationManager.AppSettings("MyAttribute")%>会出现错误,提示无法将AppSettings用作方法。因此,请使用以下方式:<%=ConfigurationManager.AppSettings["MyAttribute"]%> - Jawand Singh

3
您可以在ASPX页面中使用ConfigurationManager。然后,您可以在OBJECT标记参数中添加内容:

Web.Config

</configuration>
    <appSettings>
        <add key="Setting" value="Value"/>
    <appSettings>
</configuration>

ASPX

<object>
    <param name="Setting" value="<%= System.Configuration.ConfigurationManager.AppSettings["Setting"] %>" />
</object>

0
你有几个选择。如果你在你的对象标签中添加runat="server"属性,你可以使用它的ID从你的代码后台访问它,并通过这种方式添加属性:
myObjectID.Attributes.Add("attrName", "value")

如果你不想那样做,你可以使用内联文字:

<object id="myObjectID attr="<%= ConfigurationManager.AppSettings("MyAttribute") %>" ...>

无论哪种方式都可以完成工作。

0
我建议您在运行时从服务器动态生成OBJECT标记。这样,您可以注入从web.config文件中读取的任何参数。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接