目前我正试图进入ASP.NET MVC框架。
对于我的大多数测试应用程序,我使用了一个程序集/项目。这适用于一些较小的应用程序。然后我想知道如何将模型,控制器和视图类放入单独的程序集中?在非常大的Web应用程序中,将所有内容放入单个程序集/项目中并不现实。
所以我的问题是:是否有可能告诉ASP.NET MVC框架在另一个程序集中搜索视图和/或控制器而不会失去路由引擎的内置灵活性?
目前我正试图进入ASP.NET MVC框架。
对于我的大多数测试应用程序,我使用了一个程序集/项目。这适用于一些较小的应用程序。然后我想知道如何将模型,控制器和视图类放入单独的程序集中?在非常大的Web应用程序中,将所有内容放入单个程序集/项目中并不现实。
所以我的问题是:是否有可能告诉ASP.NET MVC框架在另一个程序集中搜索视图和/或控制器而不会失去路由引擎的内置灵活性?
(未知)是正确的。创建两个项目,一个类库和一个MVC Web项目。 MVC项目应该引用包含控制器和代码隐藏文件(全局asax等)的类库。这是一个示例布局。
类库应该只包含.cs文件而不包含视图(.aspx / .ascx文件)。
MyProject.BaseSite(类库) +控制器 - HomeController.cs - ......任何其他控制器 - default.aspx.cs - global.asax.cs
MVC Web项目应包含配置,视图等以及对类库的引用
MyProject.ExampleSite +内容 +脚本 + css +图像 +观点 +家 - index.aspx - ..其他aspx文件 +共享 - Site.master - web.config
记住不同的命名空间。然后,您可以创建多个引用相同代码的示例网站。这使您可以完全不同地有效地为您的网站着色。
(未知)是正确的。创建两个项目,一个类库和一个MVC Web项目。 MVC项目应该引用包含控制器和代码隐藏文件(全局asax等)的类库。这是一个示例布局。
类库应该只包含.cs文件而不包含视图(.aspx / .ascx文件)。
MyProject.BaseSite(类库) +控制器 - HomeController.cs - ......任何其他控制器 - default.aspx.cs - global.asax.cs
MVC Web项目应包含配置,视图等以及对类库的引用
MyProject.ExampleSite +内容 +脚本 + css +图像 +观点 +家 - index.aspx - ..其他aspx文件 +共享 - Site.master - web.config
记住不同的命名空间。然后,您可以创建多个引用相同代码的示例网站。这使您可以完全不同地有效地为您的网站着色。
为每个职责层创建一个单独的类库项目,编译以创建程序集,然后在适当的应用程序中引用它们。
是的,如果您使用其中一个支持的 依赖注入 容器,然后它们的配置数据通常不仅指定要响应特定查询而加载的类,还指定要从中加载它的程序集。这允许您在任意程序集中拆分类,MVC仍然可以找到它们。
当然,虽然Unknown(谷歌)提供的更简单的答案也可行!
我意识到这是一个非常古老的问题,但我写了一篇关于如何准确要求的文章
只完成@ David的回答:
如果您的项目由管理 NuGet,在创建类库后,执行您的副本 packages.config 文件到类库的根目录。之后,您应该编辑每个 packages.config 文件添加或删除包,根据每个类库的需要。