web-dev-qa-db-ja.com

Razorで変数を宣言する

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の外で、i = 0のようにforeach内でアクセスしようとしました。しかし、「名前 'i'は現在のコンテキストに存在しません」と表示されます

ループ内で変数にアクセスするにはどうすればよいですか?

12
Golda
<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>
21

コードブロックを使用する必要があります。

@{
    int i;
}

Razorが記述されたとおりにステートメントを解析する方法は@intに続くリテラルi。そのため、intの値の後にWord iが出力されます。

4
lc.

コードブロックを使用します。

例:

@{int i = 5;}

次に、ループ内で変数を呼び出します。

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

通常、ビューの上部で変数を宣言することをお勧めします。 @foreachの前に、次のような変数を作成できます。

@{
    int i = 0;
}
2
jacqijvv