在视图模型之间传递数据

时间:2011-02-13 04:59:27

标签: asp.net-mvc asp.net-mvc-3

我想我正在使用mvc。 我创建了一个绑定到我的视图模型的视图,看起来像这个

public class CreatePurchaseViewModel
{
  public Order Order { get; set; }
  public IEnumerable<Product> Products { get; set; }
  public DateTime OrderDate { get; set; }
  public bool OrderSent { get; set; }

}

我还创建了另一个视图模型

public class ProductsViewModel
{
  public int ProductID { get; set; }
  public int OrderID { get; set; }
}

我创建了一个绑定到此viewmodel的部分视图。

我从我的视图中加载它

@Html.Partial("_AddProductItem", new MVC_WireFrame.ViewModels.ProductsViewModel())

现在我如何将ProductsViewModel中的项目放入我的CreatePurchaseViewModel中,或者这不是正确的做事方式?

我可以从我的控制器中的ProductsViewModel访问数据,如

[HttpPost]
public ActionResult InsertProduct(string input)
{}

真的有2个问题,如何将值传递给另一个viewcontroller?和 如何在AddProduct局部视图中填充列表,以便显示已添加的产品?

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

通常,您不应将数据从一个视图模型传递到另一个视图模型。您应该创建视图模型类,使它们包含要显示的视图所需的所有信息。控制器有责任填写此信息。关于列表的第二个问题,您只需向此视图模型添加类型为IEnumerable<T>的属性,该属性将由控制器填充,视图可以显示已添加的产品。因此,请考虑您的视图需要哪些信息,并将其作为属性添加到视图模型中。