次の方法に興味があります。サポートケースに関する親データを含むメインビューがあります。また、部分ビューを使用してMTMデータの子リストを表示します。必要なデータを部分ビューに提供するためにViewModelを構築しました。
これが私のViewModelです:
public class CaseComplaintsViewModel
{
public string ComplaintCode { get; set; }
public string ComplaintType { get; set; }
}
ViewModelは、次の2つのドメインモデルのデータに基づいています。
public class CaseComplaint
{
[Key]
public int CaseComplaintID { get; set; }
public int CasesID { get; set; }
public int ComplaintCodeID { get; set; }
public virtual Cases Cases { get; set; }
public virtual ComplaintCode ComplaintCode { get; set; }
}
public class ComplaintCode
{
public int ComplaintCodeID { get; set; }
[MaxLength(50)]
[Required(ErrorMessage="Complaint Code is required")]
public string ComplaintCodeName { get; set; }
[MaxLength(50)]
[Required(ErrorMessage="Complaint Type is required")]
public string ComplaintType { get; set; }
public virtual ICollection<CaseComplaint> CaseComplaint { get; set; }
}
ものすごく単純。
これが部分図です。
@model IEnumerable<cummins_db.ViewModels.CaseComplaintsViewModel>
<table width="100%">
<tr>
<th>Complaint Code</th>
<th>Complaint Description</th>
</tr>
@foreach (var item in Model)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.ComplaintCode )
</td>
<td>
@Html.DisplayFor(modelItem => item.ComplaintType)
</td>
</tr>
}
</table>
この部分ビューは、メインのケースビュー内で使用されます。また、ajaxを使用してこの部分ビューを定期的に更新します。
だから私の質問は、私のメインケースビューが開いたときにビューに正しいデータを取得するにはどうすればよいですか?部分ビューには独自のコントローラーが必要ですか、それともCasesコントローラーで処理しますか?