我是实施大型应用程序的开发团队的一员。该应用程序有几个层次,我们希望使文件的组织尽可能容易维护,但也要遵循最佳实践。ASP.Net MVC 2文件组织;视图和控制器
下面是一个如何根据MVC约定进行布局的例子。
UIProject
- Controllers
- HomeController.cs
- ErrorController.cs
- PersonalInfoController.cs
- BaseController.cs
...
- Views
- Home
- Index.aspx
- Home1.aspx
- Home2.aspx
- PersonalInfo
- Step1.aspx
- Step2.aspx
- Step3.aspx
...
- Shared
Site.Master
Error.aspx
...
但是,我们已经意识到PersonalInfo的功能已经增长,真的应该分解为多个控制器。我们希望将它们组织到Controllers文件夹的子文件夹中。类似这样的:
Controllers
- HomeController.cs
- ErrorController.cs
- BaseController.cs
- PersonalInfo
- Step1Controller.cs
- Step2Controller.cs
- Step3Controller.cs
这可以做到,每个控制器都在PersonalInfo命名空间中。路由可以使用命名空间参数映射。
真正的问题来自MVC找到相关的视图。我找到了两种方法来解决这个问题。其中一个是clanmonroe.com,它通过从指定硬编码视图路径的基本控制器继承来处理这个问题。另一种方法是Stephen Walther,更简单地建议在视图调用中提供视图路径。
这两种方法似乎都有效,我更偏向于第一种方法。但是,它们有缺点。主要是,我们现在不再强迫这个公约。也就是说,Step1Controller.cs可以有一个Index Action,但View可以被命名为foo.aspx。
理想情况下,我们希望有一种方法可以使用本地MVC实现有组织的方法,而不需要奇怪的解决方法。对于这样的情况是否有一个确定的最佳实践,或至少是一个好的建议?
谢谢。我们之前已经给了一些地区一些考虑,但是不确定它会如何运作,以及它将如何“标准化”。然而,经过进一步审查,似乎它应该很好地完成这项工作。 – Justin 2010-01-19 22:09:17