2016-05-16 48 views
0

是否有可能使用比在下面的代碼中foreach loop另一種解決方案能夠從WeeksWeekNamesShort列表獲取值只有一個td標籤內是這樣的:的<td> @week @monthName </td>而不是使用兩個單獨的td標籤?模型的將模型中的數據合併到一個foreach循環中?

部分:

<tr> 
<td></td>    
@foreach (var week in project.Weeks) 
{ 
    <th class="week" data-week="@week">@week</th> 
} 
</tr> 
<tr> 
<td></td> 
@foreach (var monthName in project.WeekNamesShort) 
{ 
    <td class="week">@monthName</td> 
} 
</tr> 

回答

3

你可以調整視圖模型,以符合您觀的要求:

public class WeekViewModel 
{ 
    public int Number { get; set; } 
    public string Name { get; set; } 
} 
在查看代碼的

public IEnumerable<int> Weeks { get; set; } 
public IEnumerable<string> WeekNamesShort { get; set; } 

部分

然後有一個IEnumerable<WeekViewModel>財產:

public IEnumerable<WeekViewModel> Weeks { get; set; } 

,然後可以循環:

@foreach (var week in project.Weeks) 
{ 
    <td class="week"> 
     @week.Number 
     @week.Name 
    </td> 
} 
+0

謝謝您回答!但我不確定我應該如何使用您的代碼。我已經在使用ViewModell類。我應該在哪裏放置新的清單? –

+0

在您的項目視圖模型中,包含2個IEnumerable列表的模型。 –

0

如果你想保持相同的視圖模型,你可以使用一個for循環和LINQ擴展ElementAt

@for(var i = 0; i < 7; i++) 
{ 
    <td class="week"> 
     @Model.Weeks.ElementAt(i) 
     @Model.WeekNamesShort.ElementAt(i) 
    </td> 
} 
相關問題