我一直在努力研究這個問題的答案,因爲我無法拿出正確的搜索條件。發送複雜數據到ASP MVC視圖
基本上我有2 IEnumerable<T>
在我的控制器中,下面是我所做的嘗試的代碼。
控制器:
IEnumerable<Room> allRooms = RoomHelper.FindAllRooms();
foreach (var room in allRooms)
{
IEnumerable<Bunk> associatedBunks = RoomHelper.FindAssociatedBunksByRoom(room);
if (associatedBunks.Count() > 0)
{
ViewData["Room_"+room.RoomId] = associatedBunks;
}
}
我試圖把它們發送到視圖的方式,我可以做兩個foreach
循環將通過一組數據的週期(在這種情況下Room
對象和然後將通過另一個IEnumerable
它包含了相關的數據使用Room.RoomId
關鍵週期
我的看法是這樣的,但正顯示出解析錯誤:
@foreach (var room in ViewBag.Rooms)
{
<h2>@room.RoomName</h2>
@if (ViewData["Room_" + room.RoomId].Count() > 0)
{
<ol>
@foreach (var bunk in ViewData["Room_" + room.RoomId])
{
<li>@bunk.BunkId</li>
}
</ol>
}
}
最終的結果,我在HTML尋找的是這樣的:
<h2>Room 1</h2>
<ol>
<li>Bunk 1</li>
<li>Bunk 2</li>
</ol>
<h2>Room 2</h2>
<ol>
<li>Bunk 3</li>
<li>Bunk 4</li>
</ol>
什麼是ASP.NET MVC 4 EF5最佳實踐通過「多維」時實現這種結果(這是多維的?)數據?
我想我失去了一些東西,當它在視圖中使用'@'語法。 –
我會認爲,只要您需要將一些複雜的數據發送到視圖,您應該專門爲視圖創建一個ViewModel,以滿足視圖需要。 – Tobberoth