2016-07-06 124 views
-2

因此,我創建了我的第一個MVC Web應用程序,並且遇到了問題,如果有人能幫助我。MVC 5 - 視圖中的列表視圖(不同的模型)?

我有一個名爲「客戶」具有所有列的客戶信息模型,然後我有一個名爲「工作」的另一個模型,該模型具有作業信息。

現在的客戶有一個「公共虛擬ICollection的工作」,而「工作」具有「公共虛擬客戶端」 - 所以,客戶可以有很多的就業機會,工作只能有一個客戶端。

我已經創建了一個客戶一個基本的CRUD功能,現在用在特定的客戶端的「詳細信息」頁面 - 我想與該客戶端相關的所有任務,以顯示錶。 - 所以CRUD中的CRUD(如果這是有道理的)我嘗試創建工作列表視圖並在客戶端詳細信息頁面上使用「Html.RenderPartial」 - 但沒有運氣。

如何做到這一點的任何建議,將不勝感激。請原諒MVC的缺乏經驗!謝謝:)

回答

2

由於您的Client類擁有Jobs屬性,因此您可以遍歷該屬性並在詳細信息視圖中顯示作業。

@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); 
} 
+0

好不容易纔做這種方式!非常感謝!你的救星。 – Sjk

0

要爲客戶端你可以使用加載作業列表:在客戶端Vivew

@model Client 

    <h3>@Model.Name</h3> 

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

在 「_jobpartialView」

@model IEnumerable<Jobs> 

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