2012-07-25 51 views
1

我有一個看法,頂部有一個下拉列表,基本上允許用戶選擇兩個選項之一。現在這個選擇的基礎,我必須顯示內容在這個頁面上。現在正確的方式來編程在MVC3,適當使用部分視圖

,什麼倒是是正確的道路要走,我要創建兩個局部視圖,把他們單獨的div和選擇的基礎上,我會想辦法讓他們中的一個可見

或者,只是有兩個div,並在他們的內部有我的chtml標記,並根據用戶選擇使其中一個可見。

回答

1

如果您想使用部分視圖,您可以使用ajax將它們加載到包含內容的單個div中,而不是將它們都放在頁面上並隱藏。

jQuery的呼叫到所述控制器是這樣的:

$("#form").submit(function() { 
     $.ajax({ 
     type: 'POST', 
     url: '@Url.Action("PartialViewMethod","ControllerName")', 
     data: $(this).serialize(), 
     success: function (data) { 
      $("#contentDivId").html(data); 
     }, 
     }); 
} 

控制器方法是這樣的:

public ActionResult PartialViewMethod (string PartialViewName) { 
    return PartialView("_" + PartialViewName); 
} 

假設這個被包裹在一個形式提交的名稱部分視圖你想要返回,這將加載從部分視圖的HTML到ID爲contentDivId的股利。

+0

在上面的ajax調用中,如果我必須刷新整個視圖。有沒有辦法做到這一點,我的意思是在ajax調用我正在更新服務器端變量,它隱藏/顯示視圖上的一些元素,所以我希望整個視圖刷新後,這個Ajax更新,我該怎麼做這個? – Charu 2012-07-27 08:09:59

+0

如果你想刷新整個頁面,那麼使用部分視圖可能不是你想要的。但是,您可以將javascript顯示/隱藏調用的「success:function」部分中的元素。或者,您可以將代碼放入成功函數中,以便用另一個Ajax調用實際加載頁面的其他部分。 – Justin 2012-07-30 21:22:33

2

我看不到任何創建部分視圖的原因,如果它們不是由多個視圖需要或由ajax調用加載的。我會簡單地使用兩個div。

相關問題