4

The Scenario

I have an ASP.NET web project. I want to be able to define all of the links for the site inside my web.config file so that they can be changed easily if needs be. Currently I have an "" section in my web.config file.

The Question

How do I bind this key value pair to an '' tag in my .aspx file?!

The App Settings in My Web.Config File

<appSettings>
    <add key="MyNewLink" value="http://someurl.co.uk/" />
</appSettings>

Help greatly appreciated.

EDIT:

Sorry I should have mentioned that this is for a html link: **<a href></a>**

3 Answers 3

15

In your aspx file it would be:

NavigateUrl='<%$ AppSettings:MyNewLink %>'

and the full <a> tag is defined as:

<a runat="server" href="<%$ AppSettings:MyNewLink %>">Text link</a>

This syntax can only be used on an ASP.NET WebForms server control.

Sign up to request clarification or add additional context in comments.

3 Comments

This fails...... ###Error Message: Literal expressions like '<%$ AppSettings:MyNewLink %>' are not allowed. Use <asp:Literal runat="server" Text="<%$ AppSettings:MyNewLink%>" /> instead.
This definitely works: <a runat="server" href="<%$ AppSettings:MyNewLink %>">Text link</a>
Well you learn something new every day, I didn't know you could do that! Thanks @Locksfree
2

Isn't this what a .sitemap file is for?

Anyway, as far as I know, you will have to 'bind' this from code behind. Something like:

hlYourLink.NavigateUrl = ConfigurationManager.AppSettings["MyNewLink"];

3 Comments

so i would have to give the <a href=""></a> an ID attribute called 'h1YourLink'?
And a runat="server" .. But the above solution Locksfree provided should work.
Oh, and you should use the asp:hyperlink control, because the a tag doesn't have a property called navigateurl
1

I ended up using this......

.aspx file

<asp:literal id="litgetquote" runat="server"></asp:literal>

.aspx.cs CODE BEHIND

litgetquote.Text = "<A HREF='" + ConfigurationManager.AppSettings["GetQuoteUrl"] + "'>" +
            "get a quote now" + "</A>";

2 Comments

you should consider using this for readability: litgetquote.Text = string.Format("<A HREF='{0}'>get a quote now</A>", ConfigurationManager.AppSettings["GetQuoteUrl"]);
I believe all you needed was runat='server' in your <a> element.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.