razor变量不存在

Ian*_*vis 1 c# razor asp.net-mvc-3

    @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>
    }
Run Code Online (Sandbox Code Playgroud)

它表示当前上下文中不存在"预设".?? 谢谢!

Dar*_*rov 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>
}
Run Code Online (Sandbox Code Playgroud)

但我真的不明白为什么你不会使用一个foreach在你的场景中更有意义的循环:

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

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