我有以下代码,其中depts已经被声明,并且是IEnumerable<dynamic>
类型的查询结果
我收到错误dept does not exist in the current context
。如果我注释掉dept.Name,则没有错误。
@{
int I = 0;
for(I=0; I < dropdowndepts.Length; I++){
var depts = iStar.GetDepts() ;
<li class="header header_@I">
foreach(var dept in depts){
<li>@dept.Name</li>
}
</li>
}
}
确定新信息,如果我分解循环然后编译。以下是有效的:
@{
int I = 0;
string[] dropdowndepts = new string[6]{"Store Logo","Clothing","Footwear","Outerwear","Gear","Deals"} ;
}
@for(I=0; I < dropdowndepts.Length; I++){
var depts = iStar.GetDepts() ;
@:<li class="header header_@I">
<ul>
@foreach(var dept in depts){
<li>@dept.Name</li>
}
</ul>
@:</li>
}
答案 0 :(得分:3)
您的第二个foreach循环被解释为标记。在它前面放一个@:
@{
int I = 0;
for(I=0; I < dropdowndepts.Length; I++){
var depts = iStar.GetDepts() ;
<li class="header header_@I">
@foreach(var dept in depts){
<li>@dept.Name</li>
}
</li>
}
}