razor变量不存在

时间:2011-10-19 21:06:04

标签: c# asp.net-mvc-3 razor

    @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 个答案:

答案 0 :(得分: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#中的保留字)?

答案 1 :(得分:3)

@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>
}

就是这样。