我正在使用现有数据库中的ado.net实体模型。 我使用两种表产品和类别。
我有一个产品控制器:
public ActionResult Products()
{
using (var db = new StoreMvcEntities())
{
ViewData["categories"] = db.Categories.ToList();
return View(db.Products.ToList());
}
}
和观点:
@foreach (var item in Model) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.ProductName)
</td>
<td>
@Html.DisplayFor(modelItem => item.category.categoryname)
</td>
<td>
@Html.DisplayFor(modelItem => item.price)
</td>
<td>
@Html.ActionLink("Edit", "Edit", new { id=item.Id }) |
@Html.ActionLink("Details", "Details", new { id=item.Id }) |
@Html.ActionLink("Delete", "Delete", new { id=item.Id })
</td>
</tr>
}
问题在于:在控制器中,如果我删除ViewData["categories"] = db.Categories.ToList();
,则视图中的产品类别名称为空。我没有在视图中使用ViewData["categories"]
,要获得产品类别名称,我必须调用
db.Categories
并将结果影响到任何viewdata。
有人可以向我解释这是如何运作的吗?
答案 0 :(得分:0)
我的猜测是你遇到了模型绑定的副作用。 Products
类是否具有Category
类的属性?