2011-03-02 34 views
2

我創建使用MVC2,因此單頁網站可加載一些不同的頁面會看到像這樣在HTML的div:.NET MVC2多個部分景色,也可以單獨通過AJAX

========== 
|Section1| 
|  | 
========== 
========== 
|Section2| 
|  | 
========== 
========== 
|Section3| 
|  | 
========== 

我們稱之爲着陸頁/ Home/Index - 在Home/Index視圖中,只有幾個RenderAction調用來渲染Section1/Index,Section2/Index和Section3/Index - 每個部分都是控制器。

在不同的點,SECTION1,第2節或Section3中的不同部分將通過使一個Ajax請求/ SECTION1 /第一部分或/第2節/第3部分等,等

我已經知道被加載到各自的div第一次加載頁面的最好方法是對每個部分都有部分視圖,然後放入這些部分。

但是,假設我想使用AJAX轉到/ Section2/Part3 而不使用請求,確保我在頁面上顯示Section1,Section2和Section3的最佳方法是什麼,但是,而不是第二部分的默認部分視圖,我們將顯示第三部分。

任何想法,將不勝感激:)

一個我不得不是:從科行動在某種程度上恢復與瞭解渲染指定部分所需要的模型數據/首頁/索引視圖 - 但我不想要重定向,因爲URL需要保持不變。

希望這是有道理的。謝謝:)

P.S.不使用.NET Ajax。

回答

3

我認爲您的問題可以通過在您的操作方法中使用Request.IsAjax來解決。如果您有AJAX請求,則返回部分視圖。如果沒有,則返回包含部分內容的常規視圖。

public ActionResult Part1() { 
    /* Other code here */ 

    if(!Request.IsAjax) 
     return View("Part1Full"); 

    return View(); 
} 

在您的Part1Full視圖中,請致電RenderPartial("Part1")。假設你打電話給RenderAction("Part1"),但是如果不考慮[ChildActionOnly]屬性,我假設它也可以工作。你可以找到更多關於那個here的信息。

+0

謝謝喬納森,這正是我要做的:) – basicallydan 2011-03-03 16:40:54

相關問題