asp.net mvc viewdata显示类别名称

时间:2011-12-06 01:53:47

标签: asp.net-mvc

我正在使用现有数据库中的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。

有人可以向我解释这是如何运作的吗?

1 个答案:

答案 0 :(得分:0)

我的猜测是你遇到了模型绑定的副作用。 Products类是否具有Category类的属性?