2010-11-21 8 views
0

私は以下の問題を抱えています インターネットショップの商品を注文する機能を作成しています。 すべて正常に動作し、ユーザーはカートに商品を追加できます。このユーザーは、注文を完了することができます方法です。asp.net mvcはOrderProductアクションをサマリービューから実行します

ユーザーがカート(cartview)に行き、 ユーザーが(shippingDetailsView)の出荷の詳細を提供する必要があり、 概要ページが(summaryView)が表示され、 サーバーに注文を送信し、 表示はあなたに感謝ページしかし、ユーザーがクリックする(強くOrderViewModelクラスで型付けされた)、その後CompleteOrderアクションは、以下のパラメータを取得その実行されsummaryViewのボタンを「進む」とき

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

OrderViewMをodelクラスは次のようになります。

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

問題は、orderViewModelオブジェクト内のOrderオブジェクトがnullであることです。

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

私はこれは良い解決策だとは思わないしかし:オーダーがappropraite渡されますので、私は私のsummaryViewにいくつかのhiddenfieldsを作成しました。私はそれをどのように適切に行うことができますか?

答えて

0

CompleteOrderは、すでにあなたのモデルを単純化し、ちょうど注文自体を通過しない理由にreturnurlパラメータを、持っているので:

public ViewResult CompleteOrder(ShoppingCart shoppingCart, Order order, string returnUrl 
関連する問題