【发布时间】:2010-01-04 18:14:56
【问题描述】:
我正在使用一个 Web 应用程序项目。
我的 web 根目录中有一个名为 Users 的文件夹,在该文件夹中我有一个名为 UserList.aspx 的页面
我想要做的是输入 Response.Redirect(Users.UserList.URL)
我认为我可以做的是创建一个扩展 Page 的类,并添加一个名为 URL 的静态属性,该属性调用 MethodInfo.GetCurrentMethod().ReflectedType(我认为这还没有测试过),然后转换用户。用户列表 -> ~/Users/UserList.aspx
据我所知,这种方法的问题是我需要遍历每一页并使其扩展基类,并且它不适用于任何包含“-”字符的页面。
优点是,如果页面被移动,则不会有任何断开的链接(Resharper 会在页面的名称空间错误时给出)。
此外,每个接受查询字符串参数的页面都可以有一个静态方法,这样如果我想添加/删除参数,我可以看到使用这些参数等的内容。 此外,如果我想调用该页面,我不必检查参数的名称,例如UserId userId、Id 或 id。所以这看起来像 Users.ViewUser.GetUrl(1) -> ~/Users/ViewUser.aspx?UserId=1
所以问题是:有没有更好的方法来做到这一点?还是原则上这是一个坏主意?
【问题讨论】:
-
既然你已经知道页面名称,为什么还要为它写代码呢?您是否要强输入某些内容?
-
我希望它是强类型的,以便可以轻松重构。
标签: webforms web-application-project