3

URL をクリーンアップするために Web フォームでルーティングを使用しています。すべての .aspx ファイルを /Pages ディレクトリに保存し、クリーンな URL でそれらにルーティングします。現状では、たとえば /Pages/Home.aspx に移動することで、これらのファイルにアクセスできます。404 をスローするか、ルーティング テーブル内の別のページにリダイレクトするにはどうすればよいですか? これが私が試したことです:

routes.RouteExistingFiles = true;
routes.Ignore("{resource}.aspx/{*pathInfo}");
routes.Ignore(@"*\.aspx");

routes.MapPageRoute("Home", "", "~/Pages/Home.aspx");

これはまったく機能していません。アドバイスを使用できます。

MVC サイトの物理ファイルにアクセスしようとすると、次のようになります。

オブジェクト参照がオブジェクト インスタンスに設定されていません。

Webフォームでこれを行うことはできますか?

4

1 に答える 1

0
routes.RouteExistingFiles = true;
routes.MapPageRoute("Route1", "Pages/{page}.aspx", "~/404.aspx");
routes.MapPageRoute("Route2", "Pages/{folder}/{page}.aspx", "~/404.aspx");

ルートを無視する代わりに、応答の代わりに 404 をスローするページにマップする必要があります。うまくいけば、これは他の誰かに役立ちます!

于 2013-09-09T23:52:04.460 に答える