我有这样的模特:
public partial class Goods
{
public decimal good_id { get; set; }
public string good_name { get; set; }
public virtual ICollection<Description> description { get; set; }
}
public partial class Description
{
public decimal des_id { get; set; }
public decimal des_good_id { get; set; }
public string des_name { get; set; }
public string des_value { get; set; }
public virtual Goods goods { get; set; }
}
如何在商品中为每件商品的视图中加载描述模型中具有相同ID的所有数据?
我的控制器:
public ActionResult Index()
{
var parts = _db.Goods.Include(p => p.Details);
return View(parts.ToList());
}
这件事无效:
@foreach (var part in Model)
{
<div class="well">
<div class="row">
<div class="col-xs-10">
<h3>
<strong>@part.good_name</strong>
</h3>
<h4>
<strong>@part.Description</strong>
</h4>
</div>
</div>
</div>
}
答案 0 :(得分:1)
我可以理解你的问题,你有模型,你的模型中也有一个列表,你想用列表检索数据
这是您的控制器代码
public ActionResult Index()
{
var parts = _db.Goods.Include("Descriptions").Where(x=>x.good_id == id);
return View(parts));
}
其中“id”是基于您的数据将被找到的ID
以下是使用剃刀引擎的View代码
@import YourApplicationName.Model.Goods
@foreach (var part in @Model.Description)
{
<div class="well">
<div class="row">
<div class="col-xs-10">
<h3>
<strong>@part.des_name</strong>
</h3>
<h4>
<strong>@part.des_value</strong>
</h4>
</div>
</div>
</div>
}
希望这是你的答案
答案 1 :(得分:0)
如果您使用的是Entity Framework,它会自动为每件商品加载相关的描述。您不必专门为此做任何事情。您只需使用goodsInstance.Description
。
答案 2 :(得分:0)
首先在控制器中 - &gt; action生成数据并将其传递给模型:
public ActionResult SampleAction()
{
using(var context = new YourContext())
{
return View(context.Goods.Include("description").First()); // for example
}
}
之后,您必须在View中定义模型并将其放在视图的第一行:
@model Goods
然后你拥有所需的一切: 只需渲染您的数据:
<table>
<tr>
<td colspan="2">
@Model.good_name
</td>
</tr>
@foreach (descp in @Model.description.ToList())
{
<tr>
<td>
@desc.des_name
</td>
<td>
@desc.des_value
</td>
</tr>
}
</table>