MVC局部视图,局部模型,局部控制器?

时间:2013-10-28 12:47:23

标签: asp.net-mvc asp.net-mvc-4

目前我正在调查MVC是否是我们的Web应用程序的新主要版本的方法。我们有一个带有webparts的现有Web应用程序,根据某些用户设置动态呈现。每个webpart都有自己的数据和自己的逻辑(例如,一个带有用户信息的webpart,一个带有当前登录用户的webpart,一个带有约会的webpart等等)。

我们需要完成的工作(我认为)是渲染一个包含多个局部视图的视图。每个局部视图代表一个不同的模型,并有自己的逻辑。

我想出了如何在一个视图中放置多个局部视图,但我不知道如何处理每个视图的业务逻辑(在“部分控制器”中?如果可能的话,在al?),并处理模型对于每个视图?

因此,主要目的是呈现具有多个动态视图的页面(根据用户配置的内容),每个页面都有自己的逻辑和数据。然后,例如,当在部分视图中单击按钮时,将调用相应的控制器来处理该事件,并返回更新的部分视图。部分视图需要松散耦合,并更新为异步。

从目前为止我看到的大多数教程和文档都侧重于MVC,而不是如何为每个局部视图分离业务逻辑和模型。

所以我不会问怎么做,但是:

  • 使用MVC 4或5可以轻松完成此操作吗?

  • 有人知道一个很好的现实生活示例或教程吗?

我希望任何人都能指出我正确的方向或分享一些想法...

1 个答案:

答案 0 :(得分:1)

您可以为每个webpart创建一个或多个带有操作的控制器。

将所有相关的Web部件分组到同一控制器中,但为每个webpart执行操作和View + ViewModel。然后使用Html.RenderAction方法在您的页面/主视图上调用这些操作(并放置您的webparts)。

免责声明:这就是说,每次调用Html.RenderAction都会创建一个完整的mvc流程,实现一个控制器,模型和视图,最后呈现整个事物并将值传递给您的页面/主视图。拥有大量的Html.RenderAction可能会大大减慢您的页面创建速度。您可以像Unity一样研究DI / IoC并考虑重用控制器,或者只是查看System.Web.Mvc.DependencyResolver来自己处理控制器的创建。