1

为什么第一段有效,第二段<在标签标签处抛出“无效的表达式术语''错误?

第一段:

@foreach( var f in new List<List<string>>{ new List<string>{ new List<string>{ "PumpSize", "Pump Size" },
new List<string>{ "PumpType", "Pump Type" }, 
new List<string>{ "WellHead", "Well Head" } } )
{
    <label>@f[1]
    </label>
}

第二段:

@{
    var fields = new List<List<string>>{ new List<string>{ new List<string>{ "PumpSize", "Pump Size" },
        new List<string>{ "PumpType", "Pump Type" }, 
        new List<string>{ "WellHead", "Well Head" } };
    fields.ForEach( f => 
    {
        <label>@f[1]</label>
    } );
}

我得到的错误是<label>“无效的表达式术语' <'。

如果有关系,我的浏览器是 IE9。

4

1 回答 1

1

问题是这ForEach是一个接受 lambda 表达式的方法,因此,您不能在此范围内传递视图(或一段 html)代码。我建议你使用一个简单的foreach循环。

@foreach(var field in fields) {
   <label>@field[1]</label>
}

如果您对这种方法有疑问,您也可以使用<text>razor 标签。

@{

  foreach(var field in fields) {
    <text> 
       <label>@field[1]</label>
    </text>
  }

}
于 2013-09-19T19:49:02.037 回答