将ASP.Net Web.Config设置与.ASPX文件绑定

4

情境

我有一个ASP.NET Web项目。我希望能够在web.config文件中定义站点的所有链接,以便在需要时轻松更改。目前,在我的web.config文件中有一个“”部分。

问题

如何将此键值对绑定到我的.aspx文件中的''标签?!

Web.Config文件中的应用程序设置

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

非常感谢您的帮助。

编辑:

抱歉,我应该提到这是一个HTML链接:**<a href></a>**

3个回答

15
在您的aspx文件中,它将是这样的:
NavigateUrl='<%$ AppSettings:MyNewLink %>'

完整的<a>标签定义如下:

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

这种语法只能用于 ASP.NET WebForms 服务器控件。


1
这个失败了......###错误信息:类似 '<%$ AppSettings:MyNewLink %>' 的文字表达式是不允许的。请改用 <asp:Literal runat="server" Text="<%$ AppSettings:MyNewLink%>" />。 - Goober
这绝对有效: <a runat="server" href="<%$ AppSettings:MyNewLink %>">文本链接</a> - Locksfree
每天都有新的学习,我不知道你可以这样做!谢谢@Locksfree - DavidGouge

2
这不是.sitemap文件的作用吗?无论如何,据我所知,您将不得不从代码后端进行“绑定”。类似于以下内容:
hlYourLink.NavigateUrl = ConfigurationManager.AppSettings["MyNewLink"];

那么我需要给<a href=""></a>添加一个ID属性,叫做'h1YourLink'吗? - Goober
而且一个runat =“server”..但是Locksfree提供的上述解决方案应该可以工作。 - Moulde
哦,你应该使用asp:hyperlink控件,因为a标签没有一个叫做navigateurl的属性。 - Moulde

1

最终我使用了这个......

.aspx文件

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

aspx.cs 的代码后台

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

1
litgetquote.Text = string.Format("<A HREF='{0}'>现在获取报价</A>", ConfigurationManager.AppSettings["GetQuoteUrl"]); - Pete Amundson
我相信你所需要的只是在你的<a>元素中加上runat='server'。 - deebs

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