我认为没有任何自动解决方案,您最终可能会自己构建一些东西。你可能想看看 Asp.Net Sitemap 的东西,虽然它主要集中在导航控件上。
http://msdn.microsoft.com/en-us/library/yy2ykkab.aspx
我在几个项目中遇到了同样的问题。一种简单的解决方案是创建常量/静态/枚举来表示页面名称/url:
public static class SiteMap {
public static readonly string Default = "/default.aspx";
}
这当然可以让你做
Response.Redirect(SiteMap.Default);
但这很快就过时了,因为页面需要传入参数,并且迟早您会遇到与参数名称完全相同的问题。所以我们通过添加一个 Url 工厂类来扩展这个想法
public static class SiteMap {
public static readonly string Article = "/blog/article.aspx";
}
public static class PageParams {
public static readonly string ArticleId = "aid";
}
public static class UrlFactory {
public static string GetUrlBlogArticle(int articleId){
return string.Format("/{0}?{1}={2}",SiteMap.Article, PageParams.ArticleId, articleId.ToString());
}
}
该方法可确保所有链接以相同的方式工作并包含相同的参数。通过设置 PageParams 常量类,登录页面/控件代码也更简洁一些,因为您可以这样做
public void method(){
var articleId = Request[PageParams.ArticleId];
}
而不是到处都有随机的请求参数名称。
希望能给你一些想法。