1

私の Web サイト プロジェクト (MVC ではなく、Web アプリケーションではない) の global.asax では、MapPageRoute では、拡張子を持つページにマップできません。

例えば:

routes.MapPageRoute("GetMobilePassForAttendee", "Pass/Attendee/{attendeeId}", "~/GetMobilePass.aspx");

期待どおりに動作しますが、

routes.MapPageRoute("GetMobilePassForAttendee", "Pass/Attendee/{attendeeId}/pass.pkpass", "~/GetMobilePass.aspx");

404 を返します。

理由を知っている人はいますか?

おそらく URL 書き換えを使用する必要がありますが、私が読んだすべての資料では、代わりにルーティングを使用することが提案されています。

4

2 に答える 2

0

「pass.pkpass」ページを個別にテストしましたか。attendeeid=1 と言って、Pass/Attendee/1/pass.pkpass がルーティングのない作業ページかどうかを確認しますか?

この場合、これが作業中のページである場合、.NET ルーティングは機能しないためです。ルーティングをスキップして、実際の「Pass/Attendee/1/pass.pkpass」ページを読み込みます。

于 2012-10-05T06:32:49.517 に答える
0

これは私のために働いた:

routes.MapPageRoute("FederationMetadataRoute", "FederationMetadata/2007-06/{file}", "~/FederationMetadata/2007-06/FederationMetadata.aspx")

そして、{file}パラメータをチェックして、それが等しいことを確認しますFederationMetadata.xml

したがって、あなたの場合、設定Pass/Attendee/{attendeeId}/pass.pkpassするだけですPass/Attendee/{attendeeId}/{pkpass}

そして、それがあなたのページと同じで{pkpass}あることを確認しpass.pkpassてください。

于 2012-12-03T14:07:31.150 に答える