1

MVC 4 でルートを記述するより良い方法であることを願っており、フィードバックをお願いします。

以下のルーティング パターンが MVC 4 で最適な方法であるかどうか教えてください。

次の形式で URL を表示する必要があるアプリケーションがあります。

http://domain.com/777-777-7777-777-7777/Page1

http://domain.com/777-777-7777-777-7777/Page2

777-777-7777-777-7777 は口座番号です。PageX は、レポートのページ番号です。

プロジェクト内の他のコントローラー ルートを破棄しないようにしています。以下は私が試したものですが、これが将来のコントローラーを台無しにする場合はフィードバックが必要です.

レポート番号とページ ルート

routes.MapRoute( 
"Report", // Route name 
"{AccountNumber}/{ReportPage}",  
new { controller = "Report", action = "Navigate", AccountNumber =     UrlParameter.Optional, ReportPage = UrlParameter.Optional});

Future Controller ゴミ箱に入れたくありません。

routes.MapRoute( 
"FutureController", // Route name 
"FutureController/{action}/{id}",  
new { controller = "FutureController",id= UrlParameter.Optional});

フィードバックをお待ちしております。

4

1 に答える 1

0

あなたのルートは大丈夫だと思います。現在の設定で壊れることはありません。ルートを記述するときに覚えておくべき唯一のことは、より具体的なルートを最初に配置することです。これは、ルートが順番に処理され、最初に一致するルートが URL エンジンによって選択されるためです。ただし、パラメータには数値 1 または 2 の代わりにandのReportPageような値が含まれると言わなければなりません。アクション結果で数値部分のみを受け取るルールを書いている人を見たことがあります。私が覚えている限りでは、それは次のようなものでしたpage1page1

routes.MapRoute( 
"Report", // Route name 
"{AccountNumber}/page{ReportPage}",  
new { controller = "Report", action = "Navigate", AccountNumber =     UrlParameter.Optional, ReportPage = UrlParameter.Optional},new{ReportPage = "\d+"});

このようにして、次のような URL が得http://domain.com/account/page1られますが、アクション メソッドでは、パラメーターの数値を受け取りReportPageます。ただし、ページ番号がない場合は一致しません。このシナリオでは、この質問への回答で推奨されている人のような別のルートを追加できます

于 2012-08-12T17:26:53.690 に答える