我是 .Net MVC 的新手,我正在努力解决以下问题。
我有我的模型,其中包含我希望在一页上显示的两个表。这些表是产品和供应商。
我创建了一个包含两个枚举表的 ViewModel。
在控制器中,我创建了一个包含数据的 List 对象。
我遇到的问题是在视图中定义字段,即当我需要item.Product.ID时只有item.Product可用
请在下面查看我的代码:
Product.cs - 由实体框架生成
namespace MyApp
{
using System;
using System.Collections.Generic;
public partial class Product
{
public Product()
{
this.Suppliers = new HashSet<Supplier>();
}
public int ID { get; set; }
public string title { get; set; }
public string img { get; set; }
public string description { get; set; }
public virtual ICollection<Supplier> Suppliers { get; set; }
}
}
Supplier.cs - 由实体框架生成
namespace MyApp
{
using System;
using System.Collections.Generic;
public partial class Supplier
{
public int ID { get; set; }
public string name { get; set; }
public int productID { get; set; }
public decimal price { get; set; }
public virtual Product Product { get; set; }
}
}
ProductWithSupplier.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data.Entity;
namespace MyApp
{
public class ProductWithSupplier
{
public IEnumerable<Product> Products { get; set; }
public IEnumerable<Supplier> Suppliers { get; set; }
}
}
家庭控制器.cs
public ActionResult Index()
{
var p = from product in _db.Products
select product;
var s = from supplier in _db.Suppliers
select supplier;
var model = new List<MyApp.ProductWithSupplier> { new ProductWithSupplier()
{
Products = p,
Suppliers = s
}
};
return View(model);
}
Index.cshtml - 这就是问题所在。我无法指定 Product.ID、Product.title、Product.img、Product.price 和 Supplier.name
@model List<MyApp.ProductWithSupplier>
@{
ViewBag.Title = "Home Page";
}
@foreach (var item in Model) {
<div class="product @Html.Raw(item.Products.size)">
<div class="media">
<a href="product.html" title="product title">
<img src="@Html.Raw(item.Products.img)" alt="product title" data-img="product-1" />
</a>
</div>
<div class="details">
<p class="name"><a href="product.html">@Html.Raw(item.Products.title)</a></p>
<p class="price"><span class="cur">£</span><span class="total">@Html.Raw(item.Products.price)</span></p>
</div>
<div class="details-supplier" id="details-@Html.Raw(item.Products.ID)">
@foreach (var supplier in Model) {
<p>@supplier.Suppliers.name</p>
}
</div>
</div>
}
提前致谢!