【问题标题】:MVC3 Razor Html.TextBoxFor Calculated FieldsMVC3 Razor Html.TextBoxFor 计算字段
【发布时间】:2011-07-09 15:40:18
【问题描述】:

最终我想计算重量 * 价格等字段。

假设我的 MVC3 视图中有:

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

我可以直接计算这些吗?还是求助于 JQuery? 如果可能的话,我真的很想在源代码视图中保持定价“隐藏”。

基本上,当用户输入他们的包裹重量时,会显示一个价格(根据隐藏的价格点值计算)。

感谢您的指导。

【问题讨论】:

    标签: jquery asp.net-mvc-3 razor


    【解决方案1】:

    有一把剃刀,你可以在标记内做一个逻辑!

    @{
       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

    【讨论】:

    • 谢谢!那将是超级的,但我现在面临“无法将 lambda 表达式分配给隐式类型的局部变量”。这里有一篇文章:interact-sw.co.uk/iangblog/2008/03/17/lambda-inference,但想知道从那时起是否有任何改变让生活更轻松。
    • @Par6 请仔细阅读错误消息并检查它指向的位置..如果认为您能够解决该问题:) 如果没有,请创建新问题.. 如果我的回答有帮助你,请标记为“正确”
    【解决方案2】:

    是的,你可以这样做:

    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 来显示计算字段。

    希望这会有所帮助。干杯

    【讨论】:

    • 最好不要使用 JS,然后你可以使用 Razor :)
    猜你喜欢
    • 2013-06-04
    • 1970-01-01
    • 2011-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-23
    • 1970-01-01
    • 2013-09-23
    相关资源
    最近更新 更多