2010-11-21 2 views
0

У меня есть следующая проблема: Я создаю функциональность для заказа продуктов для интернет-магазина. Все работает нормально, пользователь может добавить товар в корзину. Это как пользователь может выполнить заказ:asp.net mvc execute OrderProduct action from summary view

пользователь выходит в корзине (cartview), пользователя должен предоставить детали доставки (shippingDetailsView), отображается страницы резюме (summaryView), отправки заказа на сервер, отображения спасибо страницы ,

однако, когда пользователь нажимает «продолжить» кнопку в summaryView (который сильно типизированный класс OrderViewModel), то действие CompleteOrder выполняется, что получает следующие параметры:

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

OrderViewM класс odel выглядит следующим образом:

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

проблема заключается в том, что объект Order внутри моего заказаViewModel-объект равен нулю. Я создал несколько hiddenfields в моем summaryView поэтому заказ будет передан appropraite:

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

Однако я не думаю, что это хорошее решение. Как я могу это сделать?

ответ

0

Поскольку CompleteOrder уже имеет параметр ReturnUrl, почему бы не упростить модель и просто передать сам заказ:

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