自動的な解決策はないと思います。おそらく、自分で何かを構築することになるでしょう。主にナビゲーション コントロールに焦点を当てていますが、Asp.Net サイトマップの内容を確認することをお勧めします。
http://msdn.microsoft.com/en-us/library/yy2ykkab.aspx
いくつかのプロジェクトであなたが直面しているのと同じ問題に遭遇しました。簡単な解決策の 1 つは、定数/静的/列挙型を作成して、ページ名/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];
}
どこでもランダムなリクエスト パラメータ名を使用するのではなく、
それがあなたにいくつかのアイデアを与えることを願っています。