2015-10-05 2 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

примечания стороны: что вы ожидаете от @ {вар NetWeight = 0; NetWeight;}? Это даже не актуально C# ... –

ответ

2

Вы должны сделать это:

@(Model.HotScaleGrossWeight - Model.HotScaleTareWeight) 

С вашим другом примере:

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

Затем используйте его с @netWeight. Обратите внимание, что символ @ является специфичным для бритвы, у вас нет префикса своих переменных с ним внутри выражения C#. Когда вы пишете @, вы на самом деле говорите, что собираетесь писать выражение C#. Запись @ до Model предназначена только для того, чтобы движок бритвы знал, что это будет выражение C# (ваша переменная на самом деле), а не простой текст «Модель».

Но я рекомендую делать такие вещи в вашем контроллере.

обновление

, как Алексей написал в комментариях @ не только для бритвы: What does the @ symbol before a variable name mean in C#?

+0

Боковое примечание: '@' - это не только специфическая для Razor '@ Model', действительная как для C#, так и для Razor. –

+0

верно, спасибо за исправление –

+1

@AlexeiLevenkov проклятье, конечно :) исправлено. –

Смежные вопросы