gpt4 book ai didi

asp.net - 从 aspx 访问应用程序设置并添加连接文本

转载 作者:行者123 更新时间:2023-12-05 00:04:01 25 4
gpt4 key购买 nike

我有一个项目,我的任务是在一组遗留 C#/VB Web 项目中将硬编码的域引用从一个域更改为另一个域。我想尽可能地参数化域,而不是仅仅用不同的硬编码值替换。问题是在大约 30 种不同的解决方案中有超过 800 个这样的引用,因此在每个要绑定(bind)的代码隐藏中创建变量将花费很长时间。

我已将新域添加到 web.config 文件的 appSettings 部分,这有效:

<asp:HyperLink Text="Link" NavigateUrl="<%$appSettings:DomainX %>" runat="server" />

但我需要能够做这样的事情:
<asp:HyperLink Text="Link" NavigateUrl="<%$appSettings:DomainX %>/newPage.aspx" runat="server" />

但是当我添加“/newPage.aspx”时,页面不再编译。我真的不在乎这是用 asp:HyperLink 标签还是只是一个标签。

关于我如何做到这一点的任何想法?

谢谢。

最佳答案

我认为你有两个选择。最简单的方法是只使用一个普通的旧 anchor 标签,如果你没有对 HyperLink 做任何事情的话。服务器端:

<a href="<%= string.Concat(ConfigurationManager.AppSettings["DomainX"], "/newPage.aspx") %>">Link</a>

或者,您可以设置 NavigateUrlPage_Load , 因为 <%= 在 HyperLink 中不能正常工作服务器标签:
protected void Page_Load(object sender, EventArgs e)
{
if(!Page.IsPostBack)
link1.NavigateUrl = string.Concat("http://",
ConfigurationManager.AppSettings["DomainX"], "/newPage.aspx");
}

您还可以查看是否可以进行自定义绑定(bind),例如 $myBinding:DomainX ,但我不知道这是否可能在我的脑海中(我会假设它是)。

编辑
$appSettings:DomainX代码称为 ASP.NET 表达式,您可以创建自定义表达式。这个 post来自 Phil Haack 的文章介绍了如何设置它们,以防您感兴趣。

关于asp.net - 从 aspx 访问应用程序设置并添加连接文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6075113/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com