变量在当前上下文中不存在

本文关键字:不存在 上下文 变量 | 更新日期: 2023-09-27 18:02:20

我试图运行一个while循环,不断通过一个列表,直到条目为空。我的代码看起来像这样:

int i = 0;
while(list[i] != null)
{
    <dl class="dl-horizontal">
        <dt>
            list[i].Name
        </dt>
        <dd>
            list[i].Damage
        </dd>
    </dl>
    i++;
}

我得到的错误是i不存在于while循环的上下文中。我不能在循环中定义它因为它会在每次通过时重置为0但我不确定还能做什么

变量在当前上下文中不存在

尝试在页面顶部的代码块中声明变量:

@{
    int i = 0;
}

:

@while(list[i] != null)
{
    <dl class="dl-horizontal">
        <dt>
            @list[i].Name
        </dt>
        <dd>
            @list[i].Damage
        </dd>
    </dl>
    i++;
}

当你在Razor文件中插入HTML元素时,它会脱离c#模式,所以你需要在变量调用中添加@符号。

编辑:您还需要在while和声明语句上使用@符号:

@{ int i = 0; }
@while(list[i] != null)
{
  <dl class="dl-horizontal">
      <dt>
          @list[i].Name 
      </dt>
      <dd>
          @list[i].Damage
      </dd>
  </dl>
  i++;
}

这将使您回到c#上下文中并计算表达式。