Razor 中是否有一种方法可以在页面上打印一些 HTML,而稍后在视图中知道该值?
例如:我想打印一个昂贵计算的总和,并且该总和应该在 HTML 中的项目之前。但是对于下面的示例,它总是会打印 0。我只想计算总和一次。
我想在视图中解决这个问题,而不是在 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>
编辑:非常重要的是,昂贵的计算()每个项目只计算一次!