5

ノックアウト 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)                  
    }
}

そこから合計を取得しようとすると、通常、実行時にコンパイラ例外または 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 引数を取ります

私はそれを間違っているようです。誰かが私を正しい方向に向けてくれますか?

4

1 に答える 1

0

各行の先頭から @ 記号を削除しようとしましたか? かみそりのコード ブロックを開いたら、すべての行の先頭に @ を付け続ける必要はないと確信しています。また、'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;
}
于 2013-10-04T00:11:45.400 に答える