我有以下視圖模型,其中包括其他2種型號:ASP.NET MVC:如何在一個視圖中使用多個模型?
public class ViewModel
{
public ViewModel1 viewModel1 { get; set; }
public ViewModel2 viewModel2 { get; set; }
}
我的視圖看起來是這樣的:
@Html.TextBoxFor(m => m.viewModel1.NameOfCustomer)
@Html.TextBoxFor(m => m.viewModel2.ProductCategory)
最後控制器:
public ActionResult CreateNewOrder(ViewModel viewModel)
{
Model1 myModel1 = new Model1()
{
NameOfCustomer = viewModel.viewModel1.NameOfCustomer
};
db.Orders.Add(myModel1);
db.SaveChanges();
return View(viewModel);
}
的問題是,如果我想從我的ViewModel中獲取數據,將它傳遞給我的實際模型,但它不起作用。它只顯示爲空值。如果我做了如下修改我的控制器的數據是存在的,但是,這並不工作,因爲它應該:
public ActionResult CreateNewOrder(ViewModel viewModel)
{
// that works
viewModel.viewModel1.NameOfCustomer = "John John";
Model1 myModel1 = new Model1()
{
myModel1.NameOfCustomer = viewModel.viewModel1.NameOfCustomer
};
db.Orders.Add(myModel1);
db.SaveChanges();
return View(viewModel);
}
所以我想這個問題是,從我的觀點我的數據沒有被正確地發送到我的視圖模型。我希望你們能給我一個暗示我做錯了什麼。
問候,
當你說「它只顯示爲空值。」指定什麼顯示空? viewModel爲null或模型本身的屬性爲null? –
您可以將不同的ViewModel數據發佈到不同的操作。像'ViewModel1'數據到某個動作'/ vm1'和'ViewModel2'動作'/ vm2' –
你可以使用元組來發送多個模型到一個視圖 – Bharat