使用MVC3应用程序调用其他MVC应用程序

时间:2012-03-31 11:42:56

标签: c# asp.net asp.net-mvc-3

实际上我有一些MVC3应用程序,我想从主MVC3应用程序调用这个应用程序。 例如,从基本MVC3应用程序调用特定控制器中的操作。

有没有想过这样做?

2 个答案:

答案 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,那么您将拥有主应用程序可以调用的服务层的开始。