2015-10-05 44 views
0

我有一個使用模型的視圖。我只需要使用剃刀對模型變量進行簡單的減法。對模型成員執行操作

下面是代碼的樣子:

@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

旁註:你怎麼從@期待{VAR淨重= 0;淨重;}?這甚至不是有效的C#... –

回答

2

你應該這樣做:

@(Model.HotScaleGrossWeight - Model.HotScaleTareWeight) 

用另一例如:

@{ 
    var netWeight = Model.HotScaleGrossWeight - Model.HotScaleTareWeight; 
} 

然後用@netWeight使用它。請注意,@符號是特定於剃鬚刀的,在c#表達式中沒有變量前綴。當你寫@時,你實際上是在說你要寫一個c#表達式。在Model之前編寫@只是讓剃鬚刀引擎知道這將是一個c#表達式(實際上是您的變量),而不是簡單的文本'Model'。

但我建議在你的控制器中做這種東西。

更新

如阿列克謝在評論中寫道@不僅僅是剃刀:What does the @ symbol before a variable name mean in C#?

+0

注意:'@'不僅僅是剃刀專用'@ Model'對於C#和Razor都是有效的。 –

+0

真實,謝謝你的糾正 –

+1

@AlexeiLevenkov該死的,當然:)糾正。 –