我有以下视图模型,其中包括其他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