我使用對於包含數據的兩個列表的主視圖模型下面的代碼,如何製作IEnumerable類型的Viewmodel?
namespace trsDatabase.Models
{
public class masterViewModel
{
public IEnumerable <Customer> Customers { get; set; }
public IEnumerable <CustomerSite> CustomerSites { get; set; }
}
}
我使用以下代碼來對veiwmodel傳遞給視圖,
public ViewResult Index()
{
masterViewModel sitesModel = new masterViewModel();
return View(sitesModel);
}
然後,在使用上面的代碼,我能夠從兩個列表訪問視圖模型的所有屬性,但我認爲我有以下,
@model IEnumerable<trsDatabase.Models.masterViewModel>
foreach (var site in customer.CustomerSites)
{
foreach (var cust in customer.Customers)
{
<tr>
<td>
@cust.CustomerName
</td>
<td>
@site.UnitNo
</td>
當我導航到視圖我得到一個錯誤,因爲視圖預期IEnumerable。如果我改變了聲明,只是通過視圖模型
@model trsDatabase.Models.masterViewModel
的foreach
聲明將無法正常工作,它給這個錯誤
傳遞到字典的模型產品類型「trsDatabase.Models的。 masterViewModel',但是這個字典需要一個'System.Collections.Generic.IEnumerable`1 [trsDatabase.Models.masterViewModel]'類型的模型項。
任何人都可以提供任何建議或指出我正確的方向來解決這個問題,是否有可能使我的viewmodel IEnumerable?
在一個不相關的音符,你有這些嵌套循環的方式,你會發現,同一客戶每個站點顯示多次。我的猜測是一個CustomerSite和Customer以某種方式相關,您想要在CustomerSite.Customers上使用導航屬性/集合,或者將其平鋪。 – AaronLS