2012-07-29 9 views
5

berechnen Ich versuche, meinen Kopf knockout MVC Rahmen zu bekommen. Ich betrachte die sample of a shopping cart und versuchen, herauszufinden:Wie Gesamt Warenkorb Wert von Knockout MVC Warenkorb Probe

  1. Wie Gesamtkosten berechnen
  2. Wo Client-Seite von Geschäftsregeln (wie Rabatte und Gutscheine)

hinzufügen Zur Berechnung der Zwischensumme lautet der Code

@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)     
    } 
} 

Wenn ich tr Um die Summe von dort zu bekommen, komme ich normalerweise zur Laufzeit mit einer Compiler-Ausnahme oder NullReferenceException. Zum Beispiel

@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;} 
    } 
} 

Gibt mir

Compiler-Fehlermeldung: CS1501: Keine Überladung für Methode 'Write' nimmt 0 Argumente

Scheint, wie ich es falsch mache. Würde mich jemand in die richtige Richtung weisen?

+0

Auf welche Zeile deutet dieser Fehler hin? Ist dies der erste Versuch, KO im Allgemeinen oder nur das KO MVC-Framework zu verwenden? –

Antwort

0

Haben Sie versucht, das @ -Zeichen am Anfang jeder Zeile zu entfernen? Ich bin mir sicher, sobald Sie einen Rasierer-Codeblock geöffnet haben, müssen Sie nicht mehr jede Zeile mit @ voranstellen. Auch nicht sicher, warum die Zeile 'double total' in {} eingeschlossen ist?

@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; 
}