Ren*_*ene 3 asp.net-mvc razor asp.net-mvc-3
我的剃刀视图有问题.我有以下内容:
public ICollection<Topic> Topics
public class Topic
{
public string Description { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我想遍历集合并打印出如下结果:
@foreach (int index in Enumerable.Range(0, Model.Topics.Count())){
<div>@(index). Model.Topics[@(index)].Description"</div>
}
Run Code Online (Sandbox Code Playgroud)
问题是我得到的只是:
0. Model.Topics[0].Description"
1. Model.Topics[1].Description"
Run Code Online (Sandbox Code Playgroud)
我尝试了各种各样的东西,但仍然无法得到描述.
我究竟做错了什么 :-(
Dar*_*rov 13
试试这样:
@foreach (var item in Model.Topics)
{
<div>@Model.Topics.IndexOf(item). @item.Description</div>
}
Run Code Online (Sandbox Code Playgroud)
这应该工作:
@{int i = 0;}
@foreach (Topic tp in Model.Topics){
<div>@(i++).ToString() @tp.Description</div>
}
Run Code Online (Sandbox Code Playgroud)
你在做什么试图使用foreach像for循环.(可能就像一个C++迭代器?)然而,foreach是语法糖,它可以为你完成所有的工作.
在C#foreach循环中对类型集合进行循环.所以如果你有:
int[] numbers = new int[] {1,2,3,4};
Person[] persons = //collection of persons
Run Code Online (Sandbox Code Playgroud)
循环将是:
foreach(int n in numbers) { /*n would be each of the numbers*/ }
foreach(Person p in persons)
{/* p here would refer to each person per iteration*/ }
Run Code Online (Sandbox Code Playgroud)
适用于任何IEnumerable(IList,Arrays,Collections等)
| 归档时间: |
|
| 查看次数: |
26175 次 |
| 最近记录: |