我有一个使用第三方activeX控件的ASP.NET站点。我必须将一些参数传递给HTML页面中的OBJECT标记。如果我将这些参数硬编码到HTML中,一切正常。
我想将参数放在我的web.config中,应用设置为“键/值”对。
我的问题是我无法读取HTML标记中的应用程序密钥设置,以便成功地将它们作为参数传递。我可以从后面的服务器端代码中读取它们。
在客户端HTML标记中读取这些设置的正确方法是什么?
由于
答案 0 :(得分:29)
除了使用<%=ConfigurationManager.AppSettings["MyAttribute"]%>
之外,正如其他人所说,您还可以使用expression builders。语法略有不同。您使用<%=...%>
代替<%$ AppSettings: MyAttribute %>
,而不是:{/ p>
<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"]%>" />
答案 1 :(得分:9)
以下代码:
<%$ AppSettings: MyAttribute %>
与常规HTML标记和JavaScript功能不兼容!这对asp标签很有用。
尽管
<%=ConfigurationManager.AppSettings("MyAttribute")%>
真正适用于一般的HTML标记。
所以
<%=ConfigurationManager.AppSettings("MyAttribute")%>
是我的推荐!
答案 2 :(得分: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>
答案 3 :(得分:0)
我建议您在运行时从服务器动态生成OBJECT标记。这样,您可以注入从web.config文件中读取的任何参数。
答案 4 :(得分:0)
您有几个选择。如果将runat="server"
属性添加到对象标记,则可以使用其ID从代码隐藏中访问它,并以这种方式添加属性:
myObjectID.Attributes.Add("attrName", "value")
如果您不想这样做,可以使用内联文字:
<object id="myObjectID attr="<%= ConfigurationManager.AppSettings("MyAttribute") %>" ...>
无论哪种方式都应该完成工作。