如何从淘汰赛 mvc 购物车样本中计算购物车总价值

Posted

技术标签:

【中文标题】如何从淘汰赛 mvc 购物车样本中计算购物车总价值【英文标题】:How to calculate total cart value from knockout mvc cart sample 【发布时间】:2012-07-27 11:55:30 【问题描述】:

我正试图了解淘汰赛 mvc 框架。我正在查看sample of a shopping cart 并试图弄清楚:

    如何计算总成本 在哪里添加客户端业务规则(例如折扣和代金券)

要计算代码读取的小计

@using (lines.If(m => m.ProductId != -1))

    using (var product = lines.With(m => ko.Model.DataBase[m.CategoryId].Products[m.ProductId]))
    
        @product.html.Span(m => "\\$" + m.Price)                  
    

当我尝试从那里获取总数时,我通常会在运行时遇到编译器异常或 NullReferenceException。例如

@using (lines.If(m => m.ProductId != -1))

    using (var product = lines.With(m => ko.Model.Categories[m.CategoryId].Products[m.ProductId]))
    
        @product.Html.Span(m => "\\$" + (lines.Model.Quantity * m.Price))                                                       
        @double total = lines.Model.Quantity * m.Price;
    

给我

编译器错误消息:CS1501:方法 'Write' 没有重载需要 0 论据

好像我做错了。有人会指出我正确的方向吗?

【问题讨论】:

这个错误指向哪一行?此外,这是您第一次尝试使用一般的 KO 还是仅使用 KO MVC 框架? 【参考方案1】:

您是否尝试过从每行的开头删除 @ 符号?我敢肯定,一旦你打开了一个剃刀代码块,你就不需要在每一行前面加上@。另外,不知道为什么“double total”行包含在 中?

@using (var product = lines.With(m => ko.Model.Categories[m.CategoryId].Products[m.ProductId]))

    product.Html.Span(m => "\\$" + (lines.Model.Quantity * m.Price));
    double total = lines.Model.Quantity * m.Price;

【讨论】:

以上是关于如何从淘汰赛 mvc 购物车样本中计算购物车总价值的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 LocalStorage 计算购物车的总价

Knockout JS 购物车练习

在 magento 中从购物车中获取没有统一费率的总计

如何用JS算出商品总价!

购物车jquery数量加减+总价计算

angularjs购物车练习