如何计算淘汰mvc购物车样品的总购物车价值

ole*_*sii 5 asp.net-mvc knockout.js knockout-mvc

我试图让我的头围绕淘汰mvc框架.我正在查看购物车样本并试图找出:

  1. 如何计算总成本
  2. 在哪里添加客户端业务规则(如折扣和优惠券)

计算代码读取的小计

@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)                  
    }
}
Run Code Online (Sandbox Code Playgroud)

当我尝试从那里获得总数时,我通常在运行时最终会遇到编译器异常或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;}
    }
}
Run Code Online (Sandbox Code Playgroud)

给我

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

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

sam*_*mbo 0

您是否尝试过从每行开头删除@符号?我确信一旦你打开一个 razor 代码块,你就不需要在每一行前面加上@。另外,不确定为什么“双总计”行包含在 {} 中?

@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;
}
Run Code Online (Sandbox Code Playgroud)