2011-07-09 37 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,那么你可以使用剃刀为:) –