如何在ASP.NET MVC 1中执行子文件夹。例如,在控制器上采用以下文件夹结构:
/Controller
/Blog
ViewsController.cs
ArticlesController.cs
/Customers
SalesController.cs
ProductsController.cs
HomeController.cs
我想在视图中有以下文件夹结构,每个视图都找到了你的控制器:
/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
答案 0 :(得分:8)
这是ASP.NET MVC 2.0中添加的一项功能。它被称为Areas。
答案 1 :(得分:4)
您可以使用路线,即
routes.MapAreaRoute("Blogs",
"Blog/Views/{controller}/{action}/{id}",
new { controller = "Views", action = "Index", id = "" });
根据上述数据,这似乎符合您的需求。
答案 2 :(得分:3)
在MVC 2或更高版本中,您只需右键单击项目,然后将鼠标悬停在添加上,然后单击“区域”,并输入该区域的名称。一切都是为你自动创造的!
答案 3 :(得分:1)
正如Darin所说,Area似乎是开发人员实现这一目标的“预期”方式。如果您可以等到2月,您可以考虑使用MVC 2预览。但是,在引入带有MVC 2的区域之前,开发人员正在做类似的事情。如果您需要更直接的解决方案,可以将控制器放在上面指定的文件夹结构中。假设控制器根据其文件夹命名(即 Project.Controllers.Blog ),您只需在末尾添加一个额外参数,以指定初始化路由时控制器的命名空间。
例如:
routes.MapAreaRoute("Blog",
"Blog/{controller}/{action}/{id}",
new { controller = "Articles", action = "Index", id = "" },
"Project.Controllers.Blog");