如何将 ASP.NET MVC 应用程序中的模型、视图和控制器分离到不同的程序集中
-
05-09-2019 - |
题
目前我正在尝试进入 ASP.NET MVC 框架。
对于我的大多数测试应用程序,我使用单个程序集/项目。这对于一些较小的应用程序来说效果很好。然后我想知道如何将模型、控制器和视图类放入单独的程序集中?在真正的大型 Web 应用程序中,将所有内容放入单个程序集/项目中是不太现实的。
所以我的问题是:是否可以告诉 ASP.NET MVC 框架在另一个程序集中搜索视图和/或控制器,而不会失去路由引擎的内置灵活性?
解决方案
(未知)是正确的。创建两个项目,一个类库和MVC Web项目。该MVC项目应该引用包含控制器和隐藏文件的代码(全球ASAX等)类库。下面是一个例子的布局。
在类库应该只包含的.cs文件和无次(的.aspx / .ascx文件)。
MyProject.BaseSite (class library) + Controllers - HomeController.cs - ... any other controllers - default.aspx.cs - global.asax.cs
MVC Web项目中应该包含CONFIGS,意见等,并参考您的类库
MyProject.ExampleSite + Content + scripts + css + images + Views + Home - index.aspx - .. other aspx files + Shared - Site.master - web.config
记住不同的命名空间。然后,您可以创建引用相同的代码示例多个网站。这使您可以有效地皮肤上的你的网站完全不同。
其他提示
创建责任的每一层单独的类库项目,编译以创建组件,然后引用的每个应用程序中的适当
是的,如果您使用受支持的其中之一 依赖注入 容器,那么它们的配置数据通常不仅指定要响应特定查询而加载的类,还指定从中加载它的程序集。这允许您将类拆分到任意程序集中,并且 MVC 仍然能够找到它们。
当然,Unknown(Google)提供的更简单的答案也可以!
我意识到,这是一个非常古老的问题,但我已经写了关于如何你问究竟什么
的文章只有在完成@大卫的回答是:
如果您的项目由NuGet
管理,创建类的库后,执行您的packages.config
文件的副本给类库根。之后,你应该修改每个packages.config
文件添加或删除软件包,根据每个类库的需求。
不隶属于 StackOverflow