2017-04-07 96 views
0

嗨有一個場景,我在第一個視圖中有3個視圖,我有一些文本框,然後點擊下一個按鈕時下一個按鈕第二個視圖將顯示,第二個視圖也會有一些文本框和下一個按鈕,第三個視圖是最後的視圖,它具有很少的文本框和提交/完成按鈕。點擊提交/完成按鈕,將所有來自view1,view2和view3的數據保存到數據庫。如何使用ASP.NET MVC實現它如何將數據從一個視圖傳遞到mvc中的其他視圖

+0

它是3個獨立的視圖或在一個單獨的視圖3個獨立的面板/窗格/ div這樣的東西? –

+0

對所有3種形式使用共享viewmodel,並且保留來自先前插入表單的所有輸入的'Session' /'TempData'應該是適用的。在最後一種形式中,您可以編寫邏輯以基於存儲在viewmodel中的值將數據插入到數據庫中。 –

回答

0

您可以使用temp-data及其keep方法在後續請求中保留數據。 只需將所有必需的現場數據保存到臨時數據中,並將所有這些數據保存在一個對象(臨時數據)中並保存即可。

0

下面是一個例子。對於它:

public ActionResult Add(Model model) 
{ 
      if(ModelState.IsValid) 
      { 
       db.Model.Add(model); 
       db.SaveChanges(); 
       return RedirectToAction("Add2"); 
      } 
      return View(model); 
} 

它重定向到第二個視圖或一個局部視圖,和第二個到第三個一樣。希望能幫助到你。

0

如果要將數據從一個視圖傳遞到另一個視圖,則可以使用TempData ex。TempData [「Key」] =「test」;

,可以從TempData的獲得價值一樣

@{ 
    var abc = TempData["Key"]; 
} 

注:你可以得到TempData的值之後,它會破壞下一個動作。

+0

我需要創建多少tempdata假設我在第一種形式中有大約50個字段,那麼在這種情況下,我需要創建50個tempdata? –

+0

您也可以將對象或集合傳遞給臨時數據,例如TempData [「SaveMsg」] = new object [] {m​​odel.ImageUrl,model.Name}; –

+0

這裏的對象將是你的模型,並且在你的視圖中你可以從臨時數據轉換到你的模型。所以你不需要單個表單域的多個tempdata –

相關問題