2012-08-08 52 views
0

我是MVC的新手,想確保我理解如何構建需要構建的複雜視圖。保存複雜視圖中的數據

我需要讓用戶在頁面上添加多個機構和各機構可以

有多個培訓。

所以視圖模型將是包含培訓列表的機構列表。

我將有一個按鈕,可以讓他們添加多個機構和機構

節另一個按鈕,讓他們可以添加多個培訓中。

關於回傳方法我是否簡單地循環訪問模型 中的機構並通過它的每個機構循環列出培訓以將它們保存到數據庫?

回答

0

你可能要改爲使用這樣的控制器:

public class InstitutionController : Controller 
{ 
    public ViewResult Index() 
    { 
     return View(); // Keep it simple, load data via JSON instead 
    } 

    [HttpPost] 
    public JsonResult Load() 
    { 
     // Go get Institutions etc 
     return Json(institutions); 
    } 

    [HttpPost] 
    public JsonResult Save(Institutions[] institutions) 
    { 
     try 
     { 
      // Save the institutions to the DB 
     } 
     catch (Exception ex) 
     { 
      return Json(new { Message = "Error." }); 
     } 
     return Json(null); // Or some other way of saying it worked 
    } 
} 

也就是說,你傳遞給視圖的模型不是通過瀏覽器仍然存在 - 而服務器生成,而不是它的簡單在服務器內存響應。

但是,在上面的例子中,您可以創建一個View,它使用例如jquery通過JSON從服務器加載模型,然後您可以在瀏覽器中保存頁面的整個生命週期。當用戶對Institution或Instutions進行修改時,可以使用上面的Save()方法將新數據或數據更改發送到服務器以保存到數據庫。