我有一个使用模型的视图。我只需要使用razor对模型变量进行简单的减法。
代码如下所示:
@model Inquiry.Inq_Weights
<table id="mainWeights">
<tr>
<td>@Html.DisplayFor(model => Model.HotScaleHalfId)</td>
<td>@Html.DisplayFor(model => Model.HotScaleGrossWeight)</td>
<td>@Html.DisplayFor(model => Model.HotScaleTareWeight)</td>
</tr>
<tr>
<td><strong>Total Hot Scale Weight</strong></td>
</tr>
<tr>
<td align="right">(@Model.HotScaleGrossWeight - @Model.HotScaleTareWeight;)</td>
</tr>
</table>
我正在尝试(@Model.HotScaleGrossWeight - @Model.HotScaleTareWeight;)
但它只是显示“0 - 0”。此时零点是正确的。但我不希望它显示表达式,只是该操作的结果。
我还尝试使用变量然后列出,如
@{
var netWeight = @Model.HotScaleGrossWeight - @Model.HotScaleTareWeight;
netWeight;
}
但这也不起作用。如何对模型成员进行简单的数学运算?
答案 0 :(得分:2)
你应该这样做:
@(Model.HotScaleGrossWeight - Model.HotScaleTareWeight)
用你的另一个例子:
@{
var netWeight = Model.HotScaleGrossWeight - Model.HotScaleTareWeight;
}
然后将其与@netWeight
一起使用。请注意,@
符号是特定于剃刀的,您不能在c#表达式中为变量添加前缀。当你写@
时,你实际上在说你打算写一个c#表达式。在@
之前写Model
只是为了让剃刀引擎知道这将是ac#expression(实际上是你的变量)而不是简单的文本&#39; Model&#39;。
但我建议在你的控制器中做这种事情。
更新
正如阿列克谢在评论@
中写道的那样不只是剃刀:What does the @ symbol before a variable name mean in C#?