Razorには、後でビューで値がわかるように、ページにHTMLを印刷する方法がありますか?
例:高額な計算の合計を出力したいのですが、その合計はHTMLの項目の前にある必要があります。ただし、以下の例では、常に0が出力されます。合計を1回だけ計算したいと思います。
csharpヘルパーやクライアント側(css、javascriptなど)ではなく、ビューでこれを解決したいと思います
@{
var sum = 0;
}
<table>
@* I would like to print here the sum which is known after the foreach loop*@
<tr><td>total: @sum</td></tr>
@foreach (var item in items)
{
<tr>
@{
var x= item.expensiveCalculation();
sum+= x;
}
//print item with x
<td>@x</td>
</tr>
}
</table>
編集:高価なCalculation()がアイテムごとに1回だけ計算されることが非常に重要です!