错误“当前上下文中不存在”

时间:2013-09-18 17:12:42

标签: c# razor

我有以下代码,其中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>
                    }

1 个答案:

答案 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>
  }
}