我是新來的asp.net mvc,viewmodels對我來說也是新手。我有一個顯示產品的視圖。在視圖中,我想以一格顯示所有產品。 然後在另一個div中,我只想顯示featuredProducts,並在另一個div中顯示Toprated。我正嘗試爲每個視圖模型使用不同的視圖模型,因爲我將在不同的頁面上再次使用這些視圖模型。這是做這件事的正確方法,如果不是這樣的話。另外我怎樣才能用viewmodels來做這個練習。View中的多個ViewModels asp.net MVC
域模型
public class Product
{
public int ProductId { get; set; }
public string SKU { get; set; }
public string Name { get; set; }
public string Title { get; set; }
public string Description { get; set; }
public Boolean FeaturedProduct { get; set; }
public Boolean NewProduct { get; set; }
public Boolean TopRated { get; set; }
public Boolean BestSellers { get; set; }
}
ViewModelProductsMain(父)
public class ViewModelProductsMain
{
public ViewModelProducts Products{ get; set; }
public ViewModelTopRated TopRated{ get; set; }
public ViewModelFeatured Featured{ get; set; }
}
的ViewModels(兒童)
public class ViewModelProducts (Child)
//all products
{
public int ProductId { get; set; }
public string SKU { get; set; }
public string Name { get; set; }
public string Title { get; set; }
public string Description { get; set; }
}
public class ViewModelTopRated (Child)
//all products with TopRated true
{
public int ProductId { get; set; }
public string SKU { get; set; }
public string Name { get; set; }
public string Title { get; set; }
public string Description { get; set; }
}
public class ViewModelFeatured (Child)
//all products with Featured true
{
public int ProductId { get; set; }
public string SKU { get; set; }
public string Name { get; set; }
public string Title { get; set; }
public string Description { get; set; }
}
控制器
public ActionResult Index()
{
//How do I, instantiate and populate the model
var model = new ViewModelProductsMain();
return View(model);
}
查看
@model IEnumerable<myProject.ViewModels.ViewModelProductsMain >
沒有兄弟所有模型中包含相同的屬性 –
的單一模式可以使名爲'ProductsViewModel'這項工作 –
一個視圖模型,然後你的'ViewModelProductsMain'但我懷疑你真的想'公開IEnumerable Products {get;組; }'因爲它的一個集合(也許精選也是如此?) –