views:

301

answers:

2

I am trying to put this in my markup:

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

But for some reason this is not accepted. What am I doing wrong here?

The requirement is that I do not use a helper method but that the expressionbuilder is used in the markup.

+3  A: 

When I do this I usually create a helper class I like to call Config and put a static property on there for the App Settings in question.

Then your code would become:

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

Some of the other benefits of this is that if I decide to move the ProxyScriptUrl to a different configuration mechanism I only have to modify the one class. Your config class might look like:

public static class Config
{
    public static string ProxyScriptUrl 
    {
        get
        {
            return WebConfigurationManager.AppSettings["proxyScriptUrl "];
        }
    }
}
JoshBerke
I know but I need to do this one with the expressionbuilder inside the markup.
Nyla Pareska
+1  A: 

According to the documentation, that's not allowed:

If you want to use an expression as a static value on your page or control, you use an expression as part of an ASP.NET server control. A typical strategy is to add a Literal control and set its Text property to an expression. For example, to place a copyright notice at the bottom of every page you could use the following:

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

This might help you if want to do it all in the aspx file:

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

Note the unpleasant single quotes in the text variable - trying to us escaped double quotes results in "Badly formed script tag" errors.


Edit: apologies - I've swapped the order around this does work.

Zhaph - Ben Duguid
For that renders this in html: <script type='text/javascript' src='<%$ AppSettings: proxyScriptUrl %>'></script>I was expecting that it would render the value of the appsetting itself instead.
Nyla Pareska
Sorry - I've updated it to a version that does work.
Zhaph - Ben Duguid
Thank you! I tested it and it works.
Nyla Pareska