2011-10-05 73 views
1

我正在開發ASP.NET MVC結構中的應用程序。 我想知道,我正在嘗試創建一個只有一個頁面的站點,它的左側有一個導航欄(它是用戶輸入的列表),然後是中間的主要內容。ASP.NET MVC結構以及如何使用動作和控制器

我的問題是,我可以使導航欄(用戶輸入列表)靜態,並根據用戶輸入使用異步AJAX回發來更改主要內容?我會有多個控制器,根據用戶輸入,將主要內容設置爲不同的結果。

我該如何解決這個問題,部分視圖和調用asyncpostback的操作?

回答

2

是的,我會按照您的建議完成 - 具有呈現PartialView([name])的行爲,並且可能使用jQuery的ajax來獲取內容。

然後,您可以使用jQuery將html注入內容面板。

它可能會變得有趣的地方是,如果你需要將css添加到頁面的頭部分。

但是,在勤奮使用單個CSS或至少一組CSS文件的情況下,您可以避開它。

但請注意,如果動態注入的內容具有表單,它確實會使表單後期變得複雜。您需要劫持表單提交流程並將其轉換爲另一個Ajax調用,以將生成的html導入到您的內容面板中 - 您甚至可能需要手動提交表單提交,因爲我認爲您無法觸發表單提交作爲Ajax操作。

我已經使用命名的iframe做了類似的事情(不一定需要腳本),因爲您可以使用等於IFrame名稱的target來渲染form;這意味着iframe內容可以是全視圖而不是部分視圖(因此可以完全控制自己的腳本和css)。當然,那麼您在主機頁面和該框架之間共享數據時會遇到問題。

+0

謝謝,我會嘗試一下,我只需要知道它是否可以調用不同的控制器和視圖,並將它們異步回送到頁面的一段。 :)並感謝您的簡要解釋:) –