MVC 5 - 视图中的列表视图(不同模型)?

时间:2016-07-06 12:15:36

标签: c# html asp.net-mvc asp.net-mvc-4

所以我正在创建我的第一个MVC Web应用程序,如果有人可以帮助我,就会遇到问题。

我有一个名为"客户"其中包含客户信息的所有列,然后我有另一个名为" Job"哪个有工作信息。

现在客户有一个"公共虚拟ICollection工作",而" Job"拥有"公共虚拟客户端客户端" - 所以客户可以有很多工作,而工作只能有一个客户。

我已经为客户端创建了一个基本的CRUD功能,现在在"详细信息"特定客户端的页面 - 我想显示一个包含与该客户端关联的所有作业的表。 - 所以CRUD中的CRUD(如果有意义的话?)我尝试创建一个作业列表视图并使用" Html.RenderPartial"在客户详细信息页面 - 但没有运气。

任何有关如何做到这一点的建议将不胜感激。请原谅MVC缺乏经验!谢谢:))

2 个答案:

答案 0 :(得分:2)

由于您在Jobs课程中拥有Client属性,因此您可以对其进行迭代并在详细信息视图中显示作业。

@model Client
<h2>@Model.Name</h2>
<h3>Jobs for this client </h3>
@if(Model.Jobs!=null)
{
  <table>
    <tr>
       <th>Title </th>
    </tr>
    @foreach(var job in Model.Jobs)
    {
      <tr><td>@job.Title</td></tr>
    }
  </table>
}
else
{
  <p>No jobs found</p>
}

假设您的Details操作方法返回一个Client对象。

public ActionResult Details(int id)
{
  var client = new Client();
  //Hardcoding the values for demo. You may get it from db using the Id
  client.Name="Microsoft";
  client.Jobs= new List<Job>{
    new Job { Title ="Developer"},
    new Job { Title ="proDuct Manager"}
  };
  return View(client);
}

答案 1 :(得分:0)

要加载客户的作业列表,您可以使用: 在客户端Vivew

@model Client

    <h3>@Model.Name</h3>

    @Html.Render("_jobpartialView",client.Jobs)

在“_jobpartialView”

@model IEnumerable<Jobs>

@foreach(var job in Model)
{
//your code
}