2010-11-20 19 views
0

asp.net MVC2で複数のインターフェイスを持つプロジェクトを設定するベストプラクティスは何ですか? - エンドユーザインターフェイスAsp.net MVC2 URL構造 - ベストプラクティス

example.com/Admin/ - サイト管理

サイトが十分に関与することになります

example.com/:私たちはのような典型的な構成を必要とするプロジェクトを開始していますHomeController内のすべてのユーザーロジックと、AdminController内のすべての管理ロジックを持つことは、本当にオプションではありません。私は複数のルート定義を使用する方法について読んだが、次は正常に動作していないよう:

routes.MapRoute(
      "Admin", // Route name 
      "Admin/{controller}/{action}/{id}", // URL with parameters 
      new { controller = "Admin", action = "Index", id = UrlParameter.Optional } // Parameter defaults 
     ); 

     routes.MapRoute(
      "Default", // Route name 
      "{controller}/{action}/{id}", // URL with parameters 
      new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults 
     ); 

それはexample.com/Admin/local-partの代わりを指すように、ホームページ上のすべてのリンクを引き起こしexample.com/local-part。

各Adminコントローラに対して異なるMapRouteを指定することは避けてください(毎回マッピングから{controller}を省略します)。

プロジェクト内で別のエリアを設定する方法についても読んだことがありますが、このプロジェクトの範囲にはでもが含まれているようです。

最後に、MapRoutesに制約を加えることもできると読んだことがありますが、その部分のドキュメントはわかりにくいようです。明白な何かがありますか?それを失敗すると、asp.net構造のベストプラクティスがありますか?

答えて

2

あなたのやりたいことのためにエリアの準備ができているようです。 areaを設定することは実際には関係していません。基本的には登録するだけです。デフォルトでは、エリアルーティングはglobal.asaxのデフォルトと一致しますが、例外はURL内の余分な "\ area"スラッグです。私が数ヶ月前にプロジェクトでこれを設定したときには、ほんの数分しかかかりませんでした。

管理コントローラが1つのコントローラの範囲を超えるほど複雑な場合は、領域が保証されている可能性があります。

関連する問題