如何在模型中打印其他表的值

时间:2011-06-19 05:49:31

标签: asp.net-mvc asp.net-mvc-2 asp.net-mvc-3

我正在研究asp .net mvc3。我的数据库是SQL Server,我正在使用ado.net数据库访问机制。

这是我在控制器中的行动:

public ViewResult ProductIndex()
{                
    return View(db.Product.ToList());
}

这是我的ProductIndex.cshtml:

@model IEnumerable<CalcoWOMS.Models.Product>
@foreach (var item in Model) {
    <tr>
        <td>

            @Html.DisplayFor(modelItem => item.ProductCategoryID)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.ProductUsageID) 

        </td>
        <td>
            @Html.DisplayFor(modelItem => item.ProductRangeID)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.Code)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.Description)
        </td>
}

我的问题是我想在ProductIndex.cshtml的第一行中的“ProductCategory”表中显示“Description”字段的值,而不是ProductCategoryID字段。我该如何修改控制器和视图(.cshtml文件)?

这是我的产品表: enter image description here

这是我想要访问代码的productCategory表 enter image description here

1 个答案:

答案 0 :(得分:3)

你的模型有导航属性吗?

如果是这样,这应该有效(其中ProductCategory是导航属性):

@Html.DisplayFor(modelItem => item.ProductCategory.Description)