我想知道當你建立一個表插入到數據庫時,通過視圖傳遞數據的推薦最佳實踐是什麼?MVC通過視圖移動數據
因此,例如,如果您有一個員工網絡應用程序,在該應用程序的第一頁輸入新員工的詳細信息,第一個和第二個名稱。第二頁輸入部門詳情。
您可以使用兩種不同的模式這個審定等
所以,當你更新的名稱型號,並重定向到第二頁視圖,你怎麼可以傳遞數據有,儲存以更新系數據,然後更新組合模型並傳遞給第三個視圖以輸入第三個視圖的聯繫詳細信息。
我可以通過傳遞viewbag數據來看到它,但這看起來很糟糕。我所擁有的問題是隻能夠爲每個視圖引用一個模型,所以它似乎會丟失以前的數據。
namespace Next.Controllers
{
public class NextController : Controller
{
// GET: Next
public ActionResult Index()
{
return View();
}
public ActionResult NewEmpFirst()
{
return View();
}
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult NewEmpFirst([Bind(Include = "ID, Forename, Surname")] First NewEmpFirst)
{
if (ModelState.IsValid)
{
First first = new First
{
ID = 1,
Forename = NewEmpFirst.Forename,
Surname = NewEmpFirst.Surname
};
}
TempData["first"] = NewEmpFirst;
return RedirectToAction("NewEmpSecond");
}
public ActionResult NewEmpSecond()
{
First first = TempData["first"] as First;
TempData["first"] = first;
ViewBag.Forename = first.Forename;
return View();
}
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult NewEmpSecond([Bind(Include = "ID, Department")] Second NewEmpSecond)
{
if (ModelState.IsValid)
{
First first = TempData["first"] as First;
FirstSecond fs = new FirstSecond
{
ID = 1,
Forename = first.Forename,
Surname = first.Surname,
Department = "hello"
};
}
TempData["fs"] = NewEmpSecond;
return RedirectToAction("NewEmpThird");
}
public ActionResult NewEmpThird()
{
FirstSecond fs = TempData["fs"] as FirstSecond;
return View(fs);
}
}
}
我到目前爲止。數據將從一個視圖傳遞到另一個視圖,但是當我引用不同的模型來插入數據時,它似乎會清空以前的一組數據。
通過創建一個班級,你的意思是在一個班級中有ID,姓,名和部門,並且在一個班級和部門中添加姓和名? 如果這樣,將無法正常工作,因爲我想驗證其中的一些作爲必填字段。 – JQuery 2015-03-31 14:23:40
更新了一些示例代碼。 – Floremin 2015-03-31 14:46:04
謝謝,我現在就試試這個。 編輯 哪裏最好創建這個類,在Controllers文件夾或App_Code中?有沒有推薦的公約? – JQuery 2015-03-31 14:57:09