0

我有一个大型 Webforms 应用程序。在整个应用程序的许多地方,我们在后面的代码中设置了超链接的导航 url。硬编码字符串文字似乎是个坏主意。

hlVideos.NavigateUrl = "/path/to/some/page.aspx";

这似乎也不是一个好主意,因为它可能要求我在需要它的每个页面上都有一个常量字符串:

private const string PathToSomePage = "/path/to/some/page.aspx";

hlVideos.NavigateUrl = PathToSomePage;    

我考虑过一个包含一堆可以访问的 const 字符串的类。这似乎违反了开放/封闭原则,每次添加新页面时都要求我添加另一个常量。

public class UrlManager
{
    public const string PathToSomePage = "/path/to/some/page.aspx";
    public const string PathToSomeOtherPage = "/path/to/some/other/page.aspx";
    public const string PathToYetAnotherPage = "/path/to/yet/another/page.aspx";
}

其他人是如何处理这个问题的?也许我过于复杂了,尽管我正在处理一百个左右的 url,并且有很多页面引用每个 url。

4

2 回答 2

0

您可以尝试编写一些 T4 模板来生成您的 UrlManager 文件类。类似 T4MVC 的东西。在此处查找 WebForms 示例T4Mvc Web 表单

于 2012-07-11T09:17:49.850 回答
0

考虑使用资源文件。这样,您可以保持对页面的一致引用,但如果情况需要,它很容易在代码中维护,并且在部署后很容易热修复。

于 2012-07-10T15:31:43.830 回答