我是新來MVC5,只是想掌握使用的ViewModels的。我的問題是如果我必須在我的ViewModel的控制器中實例化我的模型類。我正在製作一個數據庫來組織賬單,並且有一個映射到數據庫表的Cash模型和一個用於查看/編輯數據的CashViewModel。我是否需要在MVC5的ViewModel中實例化Model類?
這裏是我的模型:
public class Cash
{
public int CashId { get; set; }
public decimal CashAmount { get; set; }
public int CashTypeId { get; set; }
public DateTime DateModified { get; set; }
public CashType CashType { get; set; }
}
這裏是我的ViewModel:
public class CashViewModel
{
public int CashId { get; set; }
public decimal CashAmount { get; set; }
public int CashTypeId { get; set; }
public SelectList CashTypeSelectList { get; set; }
}
這裏是我的控制器:
public ActionResult Create([Bind(Include = "CashAmount,CashTypeId")] CashViewModel cashVM)
{
if (ModelState.IsValid)
{
var cash = db.Cashes.Create();
cash.DateModified = DateTime.Now;
cash.CashAmount = cashVM.CashAmount;
cash.CashTypeId = cashVM.CashTypeId;
db.Cashes.Add(cash);
db.SaveChanges();
return RedirectToAction("Index");
}
ViewBag.CashTypeId = new SelectList(db.CashTypes, "CashTypeId", "CashTypeName", cashVM.CashTypeId);
return View(cashVM);
}
我創建了現款車型的一個實例並將我的ViewModel類映射到我的模型類。它是否正確?當我開始在一個ViewModel中有多個具有多個屬性的模型的項目時,這看起來很快就會失控。
所有的問題,我看文章是不是太模糊或過於詳細,如果有一些已經在那裏我找不到任何我的具體問題,不好意思。
你的行爲是否正確。請參閱[什麼是MVC中的ViewModel?](http://stackoverflow.com/questions/11064316/what-is-viewmodel-in-mvc)。然而,刪除你的'ViewBag.CashTypeId = new SelectList(....)'並用'cashVM.CashType = new SelectList(db.CashTypes,「CashTypeId」,「CashTypeName」);'(注意不是第4個參數) - 在視圖中應該是'@ Html.DropDownListFor(m => m.CashTypeId,Model.CashType,...)' –