How to read web.config APP key settings in HTML markup
I have an ASP.NET site which uses a 3rd party activeX control. I have t开发者_StackOverflowo pass a few parameters to the OBJECT tag in the HTML page. If i hardcode these parameters into the HTML everything works.
I would like to place the parameters in my web.config with app settings "key/value" pairs.
My problem is i cannot read the app key setting in the HTML markup to succesfully pass them in as parameters. I can read them fine from server side code behind.
What's the correct way to read these settings in the client side HTML markup ?
Thanks
In addition to using <%=ConfigurationManager.AppSettings["MyAttribute"]%>
, as others have noted, you can also use expression builders. The syntax is a little different. Instead of <%=...%>
you use <%$ AppSettings: MyAttribute %>
, like so:
<object id="myObjectID attr="<%$ AppSettings: MyAttribute %>" ...>
If you are just dumping an appSettings value directly into static HTML (as I presume you are in this example), these two approaches are identical for all practical purposes.
What is nice about expression builders, though, is that you can use them to declaratively assign appSettings values to Web control properties, something you cannot do with the <%=...%>
syntax. That is, with expression builders you can do something like:
<asp:Label runat="server" ... Text="<%$ AppSettings: MyAttribute %>" />
Whereas you could not do:
<asp:Label runat="server" ... Text="<%=ConfigurationManager.AppSettings["MyAttribute"]%>" />
The following code:
<%$ AppSettings: MyAttribute %>
is not compatible with general HTML markup and JavaScript function! It's good for asp tag.
Whereas
<%=ConfigurationManager.AppSettings("MyAttribute")%>
really work in general HTML markup.
so
<%=ConfigurationManager.AppSettings("MyAttribute")%>
is my recommendation!
You can use the ConfigurationManager
in you ASPX page. Then you can add in your OBJECT
tag parameters:
Web.Config
</configuration>
<appSettings>
<add key="Setting" value="Value"/>
<appSettings>
</configuration>
ASPX
<object>
<param name="Setting" value="<%= System.Configuration.ConfigurationManager.AppSettings["Setting"] %>" />
</object>
I suggest you generate your OBJECT tag dynamically at run-time from the server. This way you can inject whatever parameters you read from the web.config file.
You have a few options. If you add the runat="server"
attribute to your object tag, you can access it from your codebehind using its ID, and add attributes that way:
myObjectID.Attributes.Add("attrName", "value")
If you don't want to do that, you could use inline literals:
<object id="myObjectID attr="<%= ConfigurationManager.AppSettings("MyAttribute") %>" ...>
Either way should get the job done.
精彩评论