实际上我有一些MVC3应用程序,我想从主MVC3应用程序调用这个应用程序。 例如,从基本MVC3应用程序调用特定控制器中的操作。
有没有想过这样做?
答案 0 :(得分:2)
您可以使用区域以较小的块来构建大型网站。
来自MSDN:
MVC模式分离应用程序的模型(数据)逻辑 从其表示逻辑和业务逻辑。在ASP.NET MVC中,这个 逻辑分离也在物理上在项目中实现 结构,其中控制器和视图保存在使用的文件夹中 用于定义关系的命名约定。这种结构支持 大多数Web应用程序的需求。
但是,某些应用程序可能拥有大量控制器,并且 每个控制器可以与多个视图相关联。对于这些类型 应用程序,默认的ASP.NET MVC项目结构可以成为 笨重。
为了适应大型项目,ASP.NET MVC允许您对Web进行分区 应用程序分为较小的单元,称为区域。地区 提供一种将大型MVC Web应用程序分离为更小的方法 功能分组。一个区域实际上是一个MVC结构 一个应用程序。应用程序可以包含多个MVC结构 (区域)。
例如,可能会划分单个大型电子商务应用程序 进入代表店面,产品评论,用户的区域 帐户管理和购买系统。每个区域 代表整个应用程序的单独功能。
来源: http://msdn.microsoft.com/en-us/library/ee671793.aspx
在Visual Studio中,只需右键单击项目并说“添加区域”即可添加新区域。
如果您需要从视图中引用另一个区域,只需在路径值集合中添加“area”参数:
@Html.ActionLink("[LinkText]", "[ActionName]", "[ControllerName]", new { area = "[AreaName]" }, null);
答案 1 :(得分:1)
控制器只是类,因此您应该能够实例化它们并调用它们的操作,就像它们是应用程序层的一部分一样。
另一个想法,如果你在开发的早期,考虑研究MVC4s WebAPI。如果您可以将子应用程序的控制器转换为ApiControllers,那么您将拥有主应用程序可以调用的服务层的开始。