0

アクションにリダイレクトして、新しいビュー (新しいページ) を取得しようとしていますが、成功しません。デバッグ中に、コントローラーに到達しましたが、ビューを取得できません (ページ URL は変更されません)。

Fiddler を使用すると、ページが正しいビューの結果を返すことがわかりますが、ブラウザーでは URL は変更されません!

ショッピング カートが空のときに、エラー メッセージを表示する新しいページにリダイレクトしたいと考えています。

    [HttpPost]
    public RedirectToRouteResult PlaceOrder(DeliveryDetails deliveryDetails)
    {           
        if (UserCart.IsEmpty)
        {

            TempData["errorMsg"] = "Error: Cart is empty";
            return RedirectToAction("Index", "Error");
        }
        else
        {
             InsertOrder();
        }


     }

エラーコントローラー:

   public ActionResult Index()
    {
        return View();
    }

エラーコントローラー ビュー:

  @TempData["errorMsg"]

ありがとう。

4

2 に答える 2

0

ActionResultの代わりに 使用RedirectToRouteResult

[HttpPost]
public ActionResult PlaceOrder(DeliveryDetails deliveryDetails)
{           
   // .....
   return RedirectToAction("Index", "Error");
}
于 2012-12-16T12:08:57.917 に答える
0

次に、UserCart.IsEmpty が false と評価されていると推測します。エラー インデックス ルートはどのように見えますか? また、ビューを返す必要がある場合に備えて、コントローラー アクションから基本 ActionResult を返すことをお勧めします。そのままではコンパイルされないため、おそらく PlaceOrder メソッドにはさらに多くのコードがあります。

于 2012-12-16T12:12:09.297 に答える