5

我正在做一个小项目,其中我们有一张工程师表、一张项目表和一张元素表。工程师被分配了多个元素,元素可以有多个项目。我只是想知道我将如何展示工程师所不具备的所有元素。

目前,我创建了一个将工程师与元素相关联的表。它看起来有点像这样:

   [Engineer Elements]
[Engineer ID][Element ID]
   [1]           [2]
   [1]           [4]
   [2]           [2]
   [2]           [8]

所以我确实有办法链接这两个表。可以将我推向正确的方向,学习更多关于使用 MVC 将这些表链接在一起的知识吗?

4

1 回答 1

7

如果您还没有一个视图模型来表示它,只需创建一个:

public class MyViewModel
{
    public Engineer Engineer { get; set; }
    public List<Element> Elements { get; set; }
}

在控制器中填充一组视图模型

public ActionResult MyAction()
{
    var viewModels = 
        (from e in db.Engineers
         select new MyViewModel
         {
             Engineer = e,
             Elements = e.Elements,
         })
        .ToList();
    return View(viewModels);
}

在您的视图中,只需指定您正在使用视图模型的集合:

@model List<MyViewModel>
@foreach(var vm in Model)
{
    <h1>Projects for engineer: @vm.Engineer.Name</ha>
    <ul>
    @foreach(var ele in vm.Elements)
    {
        <li>@ele.Name</li>
    }
    </ul>
}
于 2013-04-05T21:58:15.843 回答