2012-12-16 65 views
0

我正在嘗試重定向到操作並獲得新視圖(新頁面),但沒有成功。在調試時,我到達控制器但未獲取視圖(頁面URL未更改)。RedirectToAction不返回查看

隨着Fiddler我看到,該頁面返回正確的查看結果,但在瀏覽器中的URL不會改變!

當購物車是空的,我想重定向到一個新的頁面顯示錯誤消息。

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

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


    } 

ErrorController:

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

ErrorController查看:

@TempData["errorMsg"] 

感謝。

回答

0

使用ActionResult代替RedirectToRouteResult

[HttpPost] 
public ActionResult PlaceOrder(DeliveryDetails deliveryDetails) 
{   
    // ..... 
    return RedirectToAction("Index", "Error"); 
} 
+0

使用Fiddler我看到該頁面返回正確的視圖結果,但在瀏覽器中URL未被更改! – Eyal

0

那我就猜測,UserCart.IsEmpty被評估爲false。你的錯誤索引路線是什麼樣的?此外,如果您需要返回視圖,最好從控制器操作返回基本ActionResult。假設在PlaceOrder方法中有更多的代碼,因爲它不會按原樣編譯

+0

我沒有此路線。我必須添加它嗎? – Eyal