2011-07-09 71 views
2

最終我想計算字段,如重量*價格。MVC3剃刀Html.TextBoxFor計算字段

假設我有我的觀點MVC3:

@Html.TextBoxFor(modelItem => item.Package.USDKg) 
    @Html.HiddenFor(modelItem => item.Pricing.VolumePrice) 

我是否能夠直接計算這些?或者訴諸JQuery? 如果可能的話,我真的想保持定價「隱藏」即使在源視圖。

基本上,當用戶輸入包裹重量時,會顯示一個價格(以隱藏的價格點值計算)。

感謝您的指導。

回答

2

擁有剃鬚刀,您可以在標記內做一個邏輯!

@{ 
    var value = model.Item.Value; 
    var price = model.Item.Proce; 
    var calculated = value * price; 
} 

<div class="price>Your price: @calculated</div> 

更多信息是在這裏:

http://weblogs.asp.net/scottgu/archive/2010/07/02/introducing-razor.aspx

+0

謝謝!這將是超級,但我現在面臨「不能將lambda表達式分配給隱式類型局部變量」。 這裏有一篇文章:http://www.interact-sw.co.uk/iangblog/2008/03/17/lambda-inference,但是想知道自那以後是否有任何變化讓生活更輕鬆。 – Par6

+0

@ Par6請仔細閱讀錯誤信息,並檢查它指向的地方..如果認爲你可以修復該:)如果不是,請創建新的問題..如果我的答案幫助你,請將它標記爲「正確」 –

1

是的,你可以做這樣的:

function calculate(){ 
    var weight = parseFloat($("#Package_USDKg").val()); 
    var price = parseFloat($("#Pricing_VolumePrice").val()); 
    var calculus = weight * price; 
    $("#calculus").text(calculus); //This shows the calculated field 
} 

$(document).ready(function(){ 
    calculate(); //Calculate on page load 
    $("#Package_USDKg").change(calculate); //Calculate every time weight changes 
}); 

我假設你有id="calculus"一個div來顯示計算字段。

希望這會有所幫助。乾杯

+0

這是不higly最好使用JS,那麼你可以使用剃刀爲:) –