2
我很好奇如何執行以下操作。我有關於支持案例的父數據的主視圖。我還將使用局部視圖顯示MTM數據的子列表。我已經構建了一個ViewModel來爲部分視圖提供所需的數據。在視圖中使用ViewModel作爲局部視圖
這裏是我的ViewModel:
public class CaseComplaintsViewModel
{
public string ComplaintCode { get; set; }
public string ComplaintType { get; set; }
}
視圖模型是基於這兩個域模型數據:
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>
這個局部視圖將在我的主Cases視圖中使用。我還將定期使用ajax刷新這個局部視圖。
所以我的問題是,當我的主要案例視圖打開時,如何將正確的數據導入到視圖中?部分視圖是否需要它自己的控制器,還是我可以在Cases控制器中處理它?
感謝您的時間。我在問題中添加了一些新信息,以顯示ViewModel需要從中獲取數據的兩個域模型。所以基本上我需要根據CaseID查詢視圖模型的數據。那麼,是否會改變您提供的通過與ComplaintCode的連接從CaseComplaints進行查詢的操作? – Ryan 2012-07-13 18:46:29
@Ryan檢查我的答案更新,我假設你正在使用實體框架 – Jorge 2012-07-13 19:05:56
這似乎是偉大的。謝謝。現在我很好奇,因爲我使用ViewModel進行局部視圖顯然不是主視圖模型的一部分,那麼我該如何放置局部視圖併爲其指定模型?例如,我有這樣的主視圖的部分視圖: