我在MVC 5中非常新,我想实现像这样的照片 my Tables
我在Index视图中有一个Bootstrap Carousel滑块从DB获取它们的图像,我希望在Index视图中显示(使用Linq)Good table然后当点击每条记录重定向到另一个页面并显示ProductInfo时, 非常感谢,
我创建了3个像Shyju所说的View模型:
public class GoodVM
{
public int Id { set; get; }
public string Name { set; get; }
}
public class ProductImageVm
{
public string Image { set; get; }
public string Color { set; get; }
}
public class ProductInfoVm
{
public string ProductText { set; get; }
public List<ProductImageVm> Images { set; get; }
}
我创建了一个viewModel,就像M.Azad所说:
public class MyGoodVM
{
public List<GoodVM> Goods { get; set;}
public List<ProductInfoVm> ProductInfoes { get; set; }
public List<ProductImageVm> ProductImages { get; set; }
}
我不知道如何在Controller中使用它们。我用Hadee代码:
var cliente = context.Goods
.Include(e => e.ProductInfoes)
.Include(e1 => e1.Enderecos.ProductImages)
.SingleOrDefault();
但我不知道是&#34;包括&#34;?仍然我的问题没有解决
答案 0 :(得分:0)
您可以拥有像这样的视图模型
public class MyViewModel
{
public List<Good> Goods { get; set;}
public List<ProductInfo> ProductInfoes { get; set; }
Public List<ProductImage> ProductImages { get; set; }
}
有关更多信息,请查看此MVC ViewModel
答案 1 :(得分:0)
为您的观点创建视图模型。
public class GoodVm
{
public int Id { set; get; }
public string Name { set; get; }
}
public class ProductVm
{
public string ProductText { set; get; }
public List<ProductImageVm> Images { set; get; }
}
public class ProductImageVm
{
public string Image { set; get; }
public string Color { set; get; }
}
对于索引视图,您需要获取所有商品
public ActionResult Goods()
{
var vm = GetGoods();
return View(vm);
}
private List<GoodVm> GetGoods()
{
return db.Goods.Select(s=> new GoodVm { Id = s.GoodID, Name = s.GoodName}).toList();
}
您的索引视图将绑定到GoodVM列表
@model List<GoodVm>
@foreach(var item in Model)
{
<h2>@item</h2>
@Html.ActionLink("view","View","Product",new {id=item.Id},null)
}
对于您的ProductInfo页面,接受一个好的Id并使用它来查询ProductInfo表
public ActionResult View(int id)
{
var productVmList=GetProducts(id);
return View(productVmList);
}
private List<ProductVm> GetProducts(int goodId)
{
return db.ProductInfos.Where(h=>h.Id==goodId)
.Select(s => new ProductVm
{
ProductText = s.InfoText,
Images = s.ProductImages.Select(c => new ProductImageVm
{
Color = c.Color,
Image = c.Image
}).ToList()
});
}
您的视图将绑定到ProductVm
@model List<ProductVm>
@foreach(var p in Model)
{
<h2>@p.ProductText</h2>
foreach(var img in p.Images)
{
<h3>@img.Color</h3>
}
}
答案 2 :(得分:0)