1

サイトをクラシック ASP から .Net (WebMatrix を使用) に移行しようとしています。新しい .cshmtl ページを従来の .asp ファイルと混ぜ合わせて、時間の経過とともにサイトをゆっくりと移行することを計画しています。現在まで、コンテンツ (URL) ごとに個別の .asp ページを作成しています。.Net に移行すると、コンテンツはデータベースから取得されるため、各 URL に特定のページはありません。私は .Net で利用できるルーティングの機能が気に入っています。これはうまく機能し、これまでのところ 1 つの例外を除いて従来の ASP とうまく連携しています。

私の例では、ASP ページが /crafts/default.asp にあり、現在はどこでも /crafts/ として参照しています。IIS の既定のドキュメント設定は、/crafts/ を参照するだけで default.asp ページを提供します。サイトのこの領域に新しいアイテムを投稿し始めたいのですが、.Net ページとして実行します。そこで、さまざまな URL を処理し、データベースに移動してアイテムを検索し、情報を表示するように設計された /crafts.c​​shtml ページを作成しました。例として、/crafts/fall-crafts.asp にレガシー ページがあり、これは正常に動作します。その名前の .asp ページがそこにあるためです。しかし、/crafts/ .Net を参照すると、/crafts/default.asp ファイルを提供する代わりに、/crafts.c​​shtml ページが引き継がれ、提供されます。.Net ルーティングの機能を維持するためにできることはありますか?

4

2 に答える 2

1

RouteConfig を変更する

    public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("crafts/");
        ...

ドキュメントについては、 RouteCollection.Ignoreを参照してください。

同様の質問 (他に必要と思われるいくつかの回避策について言及): ASP .NET MVC のフォルダーを無視する

于 2012-11-07T16:34:34.757 に答える
0

Web ページ フレームワークに組み込まれているデフォルトの「ルーティング」は、入ってくる URL をディスク上の物理ファイルと照合し、最初に cshtml または vbhtml ファイルの存在を探すことに依存しています。crafts というフォルダーと同じレベルに crafts.c​​shtml ファイルがある場合は常に、このファイルが最初に提供されます。解決策は、crafts.c​​shtml ファイルを削除するか名前を変更することですが、現時点では URL が台無しになります。

Web ページ アプリケーションでのルーティングの管理を強化するパッケージがあります。これは、Routing For WebPages と呼ばれます。URL を任意のファイル名にルーティングできます。パッケージ マネージャーまたは Nuget を介してダウンロードし、その使用方法を説明するこの記事をまとめて読むことができます。 -ウェブページ

于 2012-11-08T08:18:52.740 に答える