2012-03-31 182 views
1

其实我有一些MVC3应用程序,我想从主MVC3应用程序中调用此应用程序。例如,从基础MVC3应用程序调用特定控制器中的操作。使用MVC3应用程序调用其他MVC应用程序

有没有这样做的想法?

+4

你看过使用一个大的网站,并与区域分开吗? – aKzenT 2012-03-31 11:47:20

+0

@aKzenT:你可以更好地描述它吗?我认为这是我想要的...... – 2012-03-31 11:50:27

+0

你是什么意思,称这个动作?描述你想要存档的内容; – 2012-03-31 11:51:57

回答

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项目中的只是点击右键并说“添加区域”来添加一个新的领域。

如果您需要从您的视图引用另一个区域,您只需要添加一个“区域”参数设置为路由收藏价值:

@Html.ActionLink("[LinkText]", "[ActionName]", "[ControllerName]", new { area = "[AreaName]" }, null); 
1

控制器只是类,因此您应该能够实例化它们并将它们的操作视为它们是应用程序层的一部分。

另一个想法,如果你在开发早期,考虑到MVC4s WebAPI。如果您可以将子应用程序的控制器转换为ApiControllers,那么您可以启动主应用程序可以调用的服务层。

+0

正确的,我可以从其他类实例化他们,但我想做得更好。例如,为每个子应用程序使用路径文件... – 2012-03-31 11:54:28

+1

您可能可以得到这个工作,但不会在mvc应用程序之间建立紧密的依赖关系吗?也许你可以使用接口抽象子应用程序控制器,然后用Ioc容器解决它们。 – vansimke 2012-03-31 12:03:33

相关问题