我有一個由頂部,左側和底部標題以及主內容窗格組成的視圖。假設在AJAX請求期間,我需要更新頂部,底部和主面板的HTML(左側標題應保持不變)。ASP.NET MVC和AJAX
我想知道什麼是最好的方法來實現這一點。第一個想法是將主內容面板放入局部區域,並具有可返回PartialView的控制器操作。這不起作用,因爲該操作僅返回主窗格的HTML,我無法更新頂部和底部標題。
因此,如果我把頂部和底部標題放入各自的部分視圖中,我需要我的控制器操作來返回多個部分視圖。這是可能的嗎?或者我正在做一些完全脫離軌道的事情?
我看到有可能render a partial view to a string所以我認爲我可以在動作中使用這種技術來返回一個JSON對象,其中有3個屬性代表我需要更新的3個部分的HTML。但如果可能的話,這對我來說就像是一個非常錯誤的方法。
我的另一個想法是返回一個JSON對象,只包含partials所需的數據,並使用javascript來構造HTML。但在javascript中構建UI看起來很困難(主要內容部分使用MvcContrib的GridView進行分頁和排序)。
所以我真的很感謝什麼是最乾淨的方法來處理這種情況的建議。另外一個適應性的解決方案將是很好的:例如,如果用戶有 JavaScript禁用它將只重新加載整個頁面沒有AJAX。
UPDATE:
Andrew Siemersuggested將每個部分到其自己的局部視圖,並執行多個AJAX請求。這似乎是一種完全有效的方法,但不幸的是它並不適用於我的情況,因爲我在最初的問題描述中錯過了以下詳細信息:頂部標題實際上用於顯示主面板中發生的事件的錯誤/信息消息。因此,例如,我需要顯示錯誤消息,以防在爲主面板提取模型時引發異常。因此,只有一個請求才能更新這兩個面板。
你可能會對這看看:http://stackoverflow.com/questions/7086440/mvc-validating-binded- to-entitiy-with-reference-to-other-entities請(不知道如何直接與你聯繫):) thnx – cpoDesign 2011-08-17 20:29:12