MVC 4如何在视图中显示外键相关数据?

时间:2014-10-21 11:12:00

标签: asp.net-mvc entity-framework

我有几个由EF 6从我的数据库生成的类:

class Person {
    public int PID { set; get; }
    public string Name { set; get; }
    public int CountryID { set; get; }

    public virtual ICollection<Country> Country { set; get;}
}

class Country {
    public int CID { set; get; }
    public string Name { set; get; }
}

我想在表格中显示数据如下:

Person Name ^v                 Countries ^v                 Operation
----------------------------- ----------------------------- ---------------
[___________________________] [________dropdown_________|v] [Edit] [Delete]
...
[___________________________] [________dropdown_________|v] [Edit] [Delete]
[Pager]

在我的数据库中, CountryID Country.CID 的外键。我想显示数据并允许在线编辑和/或删除。必须禁用列,但当然在编辑模式下启用 我google了很多,并且也读了 stackoverflow ,但没有找到全面的帮助。

有没有人举例说明如何做这个gridview?
非常感谢

2 个答案:

答案 0 :(得分:2)

你可以试试这个:

控制器

public ActionResult Index()
{
var persons = db.Person.Include(c => c.Country);
return View(persons.ToList());
}

查看

@foreach (var item in Model) {
<tr>
    <td>
        @Html.DisplayFor(modelItem => item.PersonName)
    </td>       
    <td>
        @Html.DisplayFor(modelItem => item.Country.CountryName)
    </td>
    <td>
        @Html.ActionLink("Edit", "Edit", new { id=item.PersonID }) |            
        @Html.ActionLink("Delete", "Delete", new { id=item.PersonID })
    </td>
</tr>

答案 1 :(得分:0)

http://www.jtable.org/demo/PagingAndSorting

您还可以为内联编辑网格找到一些好的nuget包。