2011-10-19 54 views
1
@for(int i = 0; i < this.Model.PresetReports.Count; i++) { 
     @{ var preset = this.Model.PresetReports.ElementAt(i); } 
     <a href="#" class="@(i == 0 ? "selected" : string.Empty)">@preset.Label</a> 
    } 

它说,“预设”不存在于当前上下文存在。 ??谢谢!剃刀变量不存在

回答

2
@for(int i = 0; i < this.Model.PresetReports.Count; i++) { 
    var preset = this.Model.PresetReports.ElementAt(i); 
    <a href="#" class="@preset.class">@preset.Label</a> 
} 

这样做。

5

尝试这样的:

@for(int i = 0; i < this.Model.PresetReports.Count; i++) 
{ 
    var preset = this.Model.PresetReports.ElementAt(i); 
    @<a href="#" class="@preset.class">@preset.Label</a> 
} 

,但我真的不明白为什么你会不使用foreach循环这将使多一点的意义在您的方案:

@foreach (var preset in Model.PresetReports) 
{ 
    @<a href="#" class="@preset.class">@preset.Label</a> 
} 

现在这就是说我对preset.class有些怀疑。您的视图模型中确实有一个名为class的属性(小写字母为c,它是C#中的保留字)?

+0

我简化了它以缩短它。我正在检查,如果我== 0然后添加类“选定”的HREF。答案选项1不起作用,谢谢你的回应。 PS。我编辑了我的问题,以便更好地理解为什么我要做for循环而不是简单的foreach循环。 –