2011-04-17 148 views
0

我是MVC的新手,我正在实现一个带有大量AJAX和部分视图的Web应用程序。如何从部分视图刷新基本视图操作

我有2个视图:1个基本视图和1个局部视图。每个视图都有自己的控制器。基础视图通过模型将数据发送到局部视图。

我想使局部视图/控制器发送数据到基本视图/控制器。什么是最好的方式来做到这一点?有没有办法从部分视图操作刷新基本视图?

 public ActionResult SendDataToBaseView() 
     { 
      return View("BaseView", viewModel); 
     } 

回答

1

这是不是很清楚你的设置是什么。

如果您正在更新从主视图呈现的HTML,那么您可能会在调用操作来呈现基本视图的同一控制器上有另一个控制器操作。此其他控制器操作可能会返回JSON或HTML(可能为部分视图),并且在客户端负责采取AJAX调用的结果并使用此操作填充基本视图呈现的页面部分新数据。

这里是我会设想正在采取

  1. 调用,以呈现基本视图控制器操作的步骤。让我们把控制器BaseController和行动Index
  2. 基本视图是由呼叫呈现partiaol视图中,通过Html.RenderPartial()Html.RenderAction()Html.Action()
  3. 响应发送到客户端
  4. 事件发生在需要更新客户端基本视图呈现的数据。
  5. AJAX请求为BaseControllerUpdate动作返回JsonResult,其中包含的数据可用于更新基本视图输出的部分响应。
  6. 在客户端接收响应并更新DOM的这些部分。
+0

谢谢你Russ的回复。我的问题是如何更新整个基本视图(即返回View()),而不是只更新由AJAX调用的操作中的部分视图(即返回PartialView())?对我来说,困难是这个动作被AJAX调用,并且它只会更新视图的一部分,但不会像我需要的那样更新整个视图。 – ala 2011-04-17 20:42:16