2009-11-17 9 views
10

ASP.NET MVC 1でサブフォルダを取得するにはどうすればよいですか?例えば、コントローラ上で次のフォルダ構造を取る:これは持っている機能があるコントローラにサブフォルダを作成する

/Views 
    /Blog 
    /Views 
     Index.aspx 
     Admin.aspx 
     Show.aspx 
    /Articles 
     Show.aspx 
     Admin.aspx 
    /Customers 
    /Sales 
     Index.aspx 
     Totals.aspx 
    /Products 
     Index.aspx 
     Promotions.aspx 
    /Home 
    Index.aspx 

答えて

4

、すなわち

routes.MapAreaRoute("Blogs", 
     "Blog/Views/{controller}/{action}/{id}", 
     new { controller = "Views", action = "Index", id = "" }); 

+1

MapAreaRouteはMVC 2.0から削除されています。 Google翻訳を実行できますhttp://weblogs.asp.net/mikaelsoderstrom/archive/2009/10/02/areor-i-asp-net-mvc-2.aspx。 –

8

/Controller 
    /Blog 
    ViewsController.cs 
    ArticlesController.cs 
    /Customers 
    SalesController.cs 
    ProductsController.cs 
    HomeController.cs 

私はビューで、次のフォルダ構造を持っていると思い、各ビューには、コントローラを見つけましたASP.NET MVC 2.0で追加されました。それはAreasと呼ばれます。

上記データ特定のニーズを満たすように思われるあなたがルートを使用してそれを行うことができ
+0

実際にMVC1でそれを行うには、私は頭で信じている答えを実際に示しています。 – bastijn

+0

申し訳ありませんが、最初に "MVC1"で作業していることを明確にしておく必要がありました。 "MVC1"の解決策はありますか? –

1

ダーリンが述べたように、エリアは開発者がこれを達成するための「意図された」方法のようです。 2月まで待つことができれば、MVC 2プレビューの使用を検討するかもしれません。しかし、開発者はMVC 2でエリアを導入する前に同様のことをやっていました。より直接的な解決策が必要な場合は、上記で指定したフォルダ構造にコントローラを配置することができます。コントローラーがそのフォルダー(つまり、Project.Controllers.Blog)に基づいて名前空間になっていると仮定すると、ルートを初期化するときにコントローラーの名前空間を指定する最後の余分なパラメーターを追加するだけです。例えば

routes.MapAreaRoute("Blog", 
    "Blog/{controller}/{action}/{id}", 
    new { controller = "Articles", action = "Index", id = "" }, 
    "Project.Controllers.Blog"); 
3
MVC 2で

以上、あなただけのエリアをクリックして、地域の名前を入力し、その後、マウスが上に追加、プロジェクトに右クリックする必要があります。すべてが自動的に作成されます!

関連する問題