如何将我的MVC项目分为特定于UI(JS,CSS,图像,字体和可能的视图)和特定于控制器/模型(控制器,助手,模型和可能是视图)。由于我们的前端开发人员主要独立于Visual Studio,我一直在寻找分离项目的最佳实践。任何指针或示例项目?
答案 0 :(得分:3)
这就是我们最终的结果。
此设置需要几个小时才能使其正常工作,但它现在非常有用。
答案 1 :(得分:2)
你可以很容易地做到这一点,我也为MVC中的每个项目都做过。
一个项目有你的Controllers,ViewModel,在我的例子中,任何与MVC的依赖性解析相关的自定义逻辑和与MVC的安全认证相关的自定义类。基本上任何触及MVC框架核心的代码都不参与渲染内容。
另一个几乎拥有您在客户端使用的所有内容,以及前端所需的代码。在我的情况下,在代码方面,这是非常简约的,并包含一些Glimpse和Elmah的代码。其余的是你的视图,样式,脚本,静态内容,如下载等。
对于App_Start
中的文件,我的视图项目有Bundles,Filters,显然你可能有任何HtmlHelpers,自定义css转换就像LESS一样。
我的控制器App_Start
拥有RouteConfig
。这些并不一定是关键,它只是我最终组织我的方式,并且真正取决于在这些组件启动期间您需要访问哪些方面。
我会说,为了节省时间,在Views/web.config
文件中,为Company.Project.ViewModels
命名空间添加命名空间条目,以便在一个地方完成,而不必将其添加到每个视图,因为此命名空间将驻留在您的Controllers项目中。
带有视图的项目将是您的启动项目。只需确保global.asax
对FilterConfig
的调用,RouteConfig
和BundleConfig
所有问题都能正确解析。
这很容易做到,我的建议是自己尝试并按照你想要的方式分解它,如果你有问题,请回过头来询问困难,而不是寻找一步一步的指南。
底线是,是的,它是可能的,是的,它可行,