2012-03-12 4 views
1

[NonAction]コントローライベントの内部にあり、ホームページにリダイレクトしたいとします。そうする最も簡単な方法は何ですか? = 0の場合Cart.Count場合MVC3 - [NonAction]コントローライベントからのリダイレクト

[NonAction] 
private ShoppingCartModel PrepareShoppingCartModel(ShoppingCartModel model, 
    IList<ShoppingCartItem> cart) 
{ 
    if (cart == null) 
     throw new ArgumentNullException("cart"); 

    if (model == null) 
     throw new ArgumentNullException("model"); 

    if (cart.Count == 0) 
     return model; 

    ...bla bla bla (lots of code)  
} 

は今3行目には、代わりに空のビューの表示を取得する空のモデルを、返すので、私はむしろ、ホームページにリダイレクトします。

私が使用することはできません

リターンRedirectToAction()原因コンパイラは私に次のエラーを与える:

Cannot implicitly convert type 'System.Web.Mvc.RedirectToRouteResult' to 'Web.Models.ShoppingCart.ShoppingCartModel'

QUESTION:
ので、[NonAction]コントローラの手順を終了する正しい方法は何ですか?

答えて

0

戻り値の型は、あなたの代わりにのみモデルのビュー(モデル)を返す必要がありますをのActionResultとしなければなりません。あなたのコードは以下のようになります。

[NonAction] 
private ActionResult PrepareShoppingCartModel(ShoppingCartModel model, 
    IList<ShoppingCartItem> cart) 
{ 
    if (cart == null) 
     throw new ArgumentNullException("cart"); 

    if (model == null) 
     throw new ArgumentNullException("model"); 

    if (cart.Count == 0) 
     return View(model); 

    ...bla bla bla (lots of code)  
} 
+0

このコードは既に書かれており、変更することはできません。 ActionResultの代わりに型を返す理由があります。私はここからリダイレクトする方法を知っておく必要があります...「ここ」を変更する代わりに - :) –

関連する問題