2016-12-04 3 views
-1

私は、たくさんのページを提供するために使用するPropertyControllerを持っています。例えば..私は今、私はこのようなページを提供実行する必要があります特定のプロパティに基づいて、原料の束を行う必要がありこれに新しいコントローラーが必要ですか?

/Property 
/Property/{id} 
/Property/add 
/property/edit/{id} 

..

/Property/{id}/images/add 
/Property/{id}/images/edit/{id} 
/Property/{id}/rooms/add 
/Property/{id}/rooms/edit/{id} 

私は私が構築する必要があると思います新しいImagesControllerとRoomsController、しかし、私はフォルダの構造でこれらをする必要がありますか?私RouteConfigが現在デフォルトMapRouteルール({コントローラ}/{アクション}/{ID}

おかげに設定されている、ギャビン

答えて

1

はあなたのフォルダ構造であなたのルーティング構造を反映する必要はありません。

チェックこの1アウト: ASP.Net MVC support for Nested Resources?

効果的にあなたのルーティング文字列は、依頼者から来るものは何でもマッチするregExpressionされ、一致があるかどうかは、HTTPからの値に自分の表現のすべての変数をバインドしようとしています。リクエスト。

新しいコントローラの作成に関して、経験則はリソース/ビジネスエンティティごとにコントローラを作成することです。あなたのケースでは、ImagesController、RoomsController、PropertyControllerにyesと答えます。

+0

ありがとうございました。それをテストするだけですが、私はルートが新しいフォーマットと同様に古いフォーマットで利用可能であるようです。/imagesおよび/ property/1234/imagesにあります。それはどうすればいいのでしょうか? – Gavin5511

+0

デフォルト/コントローラ/アクションが定義されているため、/ imagesが出力されます。クエリ文字列から解析されている間、コントローラ名をImageControllerに継承できます。それを使用したくない場合は、デフォルトルートを変更する必要があります – amdmax

関連する問題