我们如何声明局部变量并输出其值?

Dot*_*mer 6 asp.net-mvc asp.net-mvc-3

我已经声明了这样的变量

@{ int i = 1; }
Run Code Online (Sandbox Code Playgroud)

现在,在内部foreach循环中,我想在每次处理循环时分配i的值;

 @foreach (var line in Model.Cart.Lines)
 {
      <input type="hidden" name="item_name_@i" value="@line.Product.ProductName" />
      <input type="hidden" name="amount_@i" value="@line.Product.Price" />
      <input type="hidden" name="quantity_@i" value="@line.Quantity" />
      @i++;
 }
Run Code Online (Sandbox Code Playgroud)

但它不起作用.

有解决方案吗

Kir*_*oll 2

如果您需要访问索引,那么使用普通for循环更有意义:

@for (int i = 0; i < Model.Cart.Lines.Count; i++)
{
    var line = Model.Cart.Lines[i];
    ...
}
Run Code Online (Sandbox Code Playgroud)

或者,您可以使用 LINQ 表达式:

@foreach (var item in Model.Cart.Lines.Select((x, i) => new { Line = x, Index = i }))
{
    // Now you can access, for example, `item.Line` for the line, and 
    // `item.Index` for the index (i.e. `i`)
    ...
}
Run Code Online (Sandbox Code Playgroud)