2

現在、私のWebアプリケーションには、次のような行がたくさんあります。

            Response.Redirect("~/Default.aspx");

など。現在、aspx ページ構造を再編成中です。非常にフラットなので、すべてが 1 つのフォルダーにあります。そのため、aspx パスを修正するには、すべてのコードを徹底的に検索する必要があります。だから私の質問は: ASP .NET で Web サイトのページ構造を管理/整理する方法はありますか?

            Response.Redirect(Pages.Default);

一部のaspxページがフォルダー間で移動される変更のためにコードが閉じられるようにするには?

4

2 に答える 2

0

私はあなたを助けるオープンソースプロジェクトを書きました、http://navigation.codeplex.com/

ページとトランジションを構成ファイルにリストします。次に例を示します。

<state key="Page1" page="~/Page1.aspx">
    <transition key="Next" to="Page2"/>
</state>
<state key="Page2" page="~/Page2.aspx"/>

次に、コードで、次のように Page1.aspx から Page2.aspx に移動できます。

StateController.Navigate("Next");

興味がある場合、またはサポートが必要な場合はお知らせください。

于 2012-05-23T12:29:57.347 に答える
0

自動的な解決策はないと思います。おそらく、自分で何かを構築することになるでしょう。主にナビゲーション コントロールに焦点を当てていますが、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];
}

どこでもランダムなリクエスト パラメータ名を使用するのではなく、

それがあなたにいくつかのアイデアを与えることを願っています。

于 2012-05-23T10:10:31.693 に答える