ASP.NET MVC 4,在一个视图中有多个模型?

Cal*_*vin 5 mysql vb.net asp.net asp.net-mvc asp.net-mvc-4

我正在开展一个小项目,我们有一个工程师表,一个项目表和一个元素表.工程师被分配了多个元素,元素可以有多个项目.我只是想知道如何展示工程师所具有的所有元素.

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

   [Engineer Elements]
[Engineer ID][Element ID]
   [1]           [2]
   [1]           [4]
   [2]           [2]
   [2]           [8]
Run Code Online (Sandbox Code Playgroud)

所以我确实有办法链接这两个表.能否让我更好地学习使用MVC将这些表连接在一起?

p.s*_*w.g 7

如果您还没有用于表示此模型的视图模型,只需创建一个:

public class MyViewModel
{
    public Engineer Engineer { get; set; }
    public List<Element> Elements { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

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

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

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

@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>
}
Run Code Online (Sandbox Code Playgroud)

  • @mattytommo完成了:) (2认同)