2012-07-29 15 views
5

Próbuję dostać moją głowę wokół Knockout mvc ramach. Szukam na sample of a shopping cart i próbuje dowiedzieć się:Jak obliczyć całkowitą wartość koszyka z nokautu próbki koszyka mvc

  1. Jak obliczyć całkowity koszt
  2. Gdzie dodać reguły po stronie klienta biznesowych (takich jak rabaty i bony)

Aby obliczyć sumę częściową, kod brzmi:

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

Kiedy tr y, aby uzyskać całkowitą stamtąd, zwykle kończę z wyjątkiem kompilatora lub NullReferenceException w czasie wykonywania. Na przykład

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

Daje mi

Komunikat o błędzie kompilatora: CS1501: Nie przeciążenie dla metody 'Write' zajmuje 0 argumenty

Wygląda jak robię to źle. Czy ktoś wskaże mi właściwy kierunek?

+0

Która linia wskazuje na ten błąd? Co więcej, czy jest to Twoja pierwsza próba użycia KO w ogóle, czy tylko w ramach KO MVC? –

Odpowiedz

0

Czy próbowałeś usunąć symbol @ od początku każdego wiersza? Jestem pewien, że po otwarciu bloku kodu brzmiącego nie trzeba ciągle wysuwać każdej linii za pomocą znaku @. Ponadto, nie wiesz, dlaczego linia "double total" jest zawijana w {}?

@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; 
} 
Powiązane problemy