2010-11-21 3 views
0

Ich habe das folgende Problem, Ich erstelle Funktionen zum Bestellen von Produkten für Internet-Shop. Alles funktioniert gut, Benutzer kann Produkte in den Warenkorb legen. Dies ist, wie Benutzer Auftrag abgeschlossen werden kann:asp.net mvc Ausführen OrderProduct Aktion von der Übersichtsansicht

Benutzer geht den Warenkorb (cartview) muss Benutzerdaten Versand liefern (shippingDetailsView), Übersichtsseite angezeigt wird (summaryView), um Server zu senden, Anzeigen danke Seite ,

jedoch, wenn der Benutzer auf „fortfahren“, um in summaryView (die stark von OrderViewModel Klasse geschrieben wird), dann CompleteOrder Aktion ausgeführt wird, das die folgenden Parameter erhält:

public ViewResult CompleteOrder(ShoppingCart shoppingCart, OrderViewModel orderViewModel, string returnUrl) 

OrderViewM odel class sieht wie folgt aus

public class OrderViewModel 
    { 
     public Order Order { get; set; } 
     public string ReturnUrl { get; set; } 
    } 

Das Problem ist, dass Order-Objekt in meinem OrderViewModel-Objekt null ist. Ich habe einige HIDDEN in meinem summaryView so wird der Orden appropraite geben werden:

<%: Html.HiddenFor(x => x.Order.Client.Firstname)%> 

Allerdings glaube ich nicht, dass dies eine gute Lösung. Wie kann ich es angemessen machen?

Antwort

0

Da CompleteOrder bereits ReturnUrl Parameter hat, warum nicht Ihr Modell vereinfachen und übergeben Sie einfach den Auftrag selbst:

public ViewResult CompleteOrder(ShoppingCart shoppingCart, Order order, string returnUrl 
Verwandte Themen