2011-07-09 38 views
2

最終的に、Weight * Priceのようなフィールドを計算したいと思います。MVC3 Razor 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

はありがとう、JSを使用するhigly好ましくない!それは超大ですが、私は今 "暗黙の型のローカル変数にラムダ式を代入できません"ということに直面しています。 ここにエッセイがあります: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

あなたはそのためにカミソリを使用することができます:) –

関連する問題