gpt4 book ai didi

asp.net - 通过编译时检查,象征性地引用其他 ASP.NET 页面?

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

我注意到我的项目中积累的代码如下所示:

Response.Redirect("/Foo/Bar.aspx");

这看起来很脆弱——如果我移动或重命名 Bar.aspx 文件,我需要找到我引用它的地方,并在标记和代码隐藏中更正这些字符串常量。看起来他们应该是更好的方式。就像是:
Response.Redirect( MyNamespace.BarPage.GetUrl() );

换句话说,让“堆栈”找出我需要的 URL。注意:我知道我可以使用手动编码的 BarPage.GetUrl() 方法合并对特定页面的引用,但即使这样也似乎容易失败。

没有更好的办法吗?

最佳答案

您将面临的问题是,除了 <%@Page %> 之外,代码隐藏和代码前端之间没有真正的内在联系。指示。代码隐藏甚至没有真正的理由必须与代码前端的文件名具有相同的类名,这只是因为它是约定并且它是自动生成器的布局方式。

这意味着您不会在编译时找到任何可以引用的东西,甚至知道 .cs 链接到什么 aspx。您会发现最接近的是 typeof(MyNamespace.BarPage).FullName这将为您提供代码隐藏的名称,并假设事情遵循约定,您可以(但我不建议)构造与其关联的代码前台页面的 URL。

就我个人而言,我认为您最好为 "barPage.aspx" 做一个全能搜索当您重命名它并进行一些重构时。无论如何,您都必须处理代码前端中的超链接。如 barPage.aspx代表一些抽象概念(如“登录页面”),为它添加一个属性可能会有所帮助,但如果 barpage 只是另一个页面,没有真正的全局固有含义,我会保持原样。

关于asp.net - 通过编译时检查,象征性地引用其他 ASP.NET 页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1877740/

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