2011-04-17 147 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