1

asp.net4.0 アプリケーションにルーティング機能を実装し、指定されたリンクをたどります。

URL ルーティング

アプリケーションが no を制限している場合、これは問題ありません。ページ数ですが、私のアプリケーションにはたくさんのページがあります。だから私はコードを書く必要があります [ routes.MapPageRoute("","",""); ] 何度も。コレクションクラスをループするか、他の方法ですべてのページをマップできますか。

ありがとう

4

1 に答える 1

1

URL とファイル構造に標準パターンがある場合は、マップされた URL でもプレースホルダーを使用できます。

例えば。すべての「{controller}/{action}/{id}」「/Pages/{controler}/{action}.aspx」にマッピングできる場合

たとえば、このフォルダー構造を持つサイトを構築します

プロジェクト フォルダ構造

ルート フォルダーの下には、すべてのページが存在する Views フォルダーがあります。Views フォルダーの下には、「コントローラー」ごとに 1 つのサブフォルダーがあります (Web フォームにはコントローラーはありませんが、ここでは MVC 規則に従います) コントローラーのサブフォルダーの下には、さまざまなアクションを表す aspx ページがあります。

aspx ページ名は各コントローラーで同じです ("Index.aspx"、"Add.aspx"、"Edit.aspx" など)。

だから私は一般的なマッピングルールを持つことができます

routes.MapPageRoute("GeneralAction", "{controler}/{action}/{id}", "~/Views/{controler}/{action}.aspx");

フォルダ構造がこのパターンに従っている限り、ページごとに異なるルールは必要ありません

"/Patient/Add" will map to "~/Views/Patient/Add.aspx"
"/Incident/Add" will map to "~/Views/Incident/Add.aspx"
"/Patient/Edit/31" will map to "~/Views/Patient/Edit.aspx" (with id=31)

など、すべて上記のこの 1 つのルールに一致します。

もちろん、このルールをオーバーライドしたい場合は、これを定義する前により具体的なルートを定義できます。

于 2012-08-09T10:52:54.870 に答える