在Razor中声明变量

时间:2014-03-07 06:19:29

标签: c# asp.net-mvc razor foreach declaration

我想在foreach之外添加一个变量,我应该在foreach循环中访问该变量

<table class="generalTbl">
    <tr>
        <th>Date</th>
        <th>Location</th>
    </tr>
    @int i;
    @foreach (var item in Model)
    {
      i=0;
        <tr>
            <td>
                @Html.DisplayFor(modelItem => item.DueDate)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.location)
            </td>
        </tr>
    }
</table>

上面的例子我添加了@int i;在foreach之外我尝试在foreach中访问它,就像i = 0;但它显示“当前上下文中不存在名称'i'

如何访问循环内的变量?

4 个答案:

答案 0 :(得分:21)

<table class="generalTbl">
    <tr>
        <th>Date</th>
        <th>Location</th>
    </tr>
    @{
        int i = 0;//value you want to initialize it with 

        foreach (var item in Model)
        {
            <tr>
                <td>
                    @Html.DisplayFor(modelItem => item.DueDate)
                </td>
                <td>
                    @Html.DisplayFor(modelItem => item.location)
                </td>
            </tr>
        }
    }
</table>

答案 1 :(得分:4)

您必须使用代码块:

@{
    int i;
}

Razor将以书面形式解析您的陈述的方式为@int,后跟文字i。因此,它会尝试输出int的值,然后输出单词i

答案 2 :(得分:3)

使用代码块:

示例:

@{int i = 5;}

然后在循环中调用变量:

@foreach(var item in Model)
{
    //i exists here
}

答案 3 :(得分:2)

通常最好在视图顶部声明变量。您可以在@foreach

之前创建这样的变量
@{
    int i = 0;
}