我有一個看法,頂部有一個下拉列表,基本上允許用戶選擇兩個選項之一。現在這個選擇的基礎,我必須顯示內容在這個頁面上。現在正確的方式來編程在MVC3,適當使用部分視圖
,什麼倒是是正確的道路要走,我要創建兩個局部視圖,把他們單獨的div和選擇的基礎上,我會想辦法讓他們中的一個可見
或者,只是有兩個div,並在他們的內部有我的chtml標記,並根據用戶選擇使其中一個可見。
我有一個看法,頂部有一個下拉列表,基本上允許用戶選擇兩個選項之一。現在這個選擇的基礎,我必須顯示內容在這個頁面上。現在正確的方式來編程在MVC3,適當使用部分視圖
,什麼倒是是正確的道路要走,我要創建兩個局部視圖,把他們單獨的div和選擇的基礎上,我會想辦法讓他們中的一個可見
或者,只是有兩個div,並在他們的內部有我的chtml標記,並根據用戶選擇使其中一個可見。
如果您想使用部分視圖,您可以使用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
的股利。
我看不到任何創建部分視圖的原因,如果它們不是由多個視圖需要或由ajax調用加載的。我會簡單地使用兩個div。
在上面的ajax調用中,如果我必須刷新整個視圖。有沒有辦法做到這一點,我的意思是在ajax調用我正在更新服務器端變量,它隱藏/顯示視圖上的一些元素,所以我希望整個視圖刷新後,這個Ajax更新,我該怎麼做這個? – Charu 2012-07-27 08:09:59
如果你想刷新整個頁面,那麼使用部分視圖可能不是你想要的。但是,您可以將javascript顯示/隱藏調用的「success:function」部分中的元素。或者,您可以將代碼放入成功函數中,以便用另一個Ajax調用實際加載頁面的其他部分。 – Justin 2012-07-30 21:22:33