2015-04-30 53 views
0

我們製作了一個使用vs 2010 mvc 4的web應用程序,它向用戶顯示產品catelougue,我們也爲此創建了購物車系統。但每當用戶提交購物車我們顯示視圖,但仍然URL相同,如何在MVC 4中的發佈請求後更改URL

發佈的數據,以行動CheckOut的URL之前:

www.domain.com/shoppingcart/checkout

發佈數據後行動結帳URL與前面提到的相同。我需要完成的是將此URL的「www.domain.com/shoppingcart/checkout」更改爲「www.domain.com/products」,因此即使用戶刷新頁面,他/她也不能將同一訂單放置兩次或更多次。

我的帖子方法是表單帖子。沒有阿賈克斯電話已經被髮布到表格。

有什麼建議嗎?

[HttpPost] 
    public ActionResult CheckOut(Order order) 
    { 
     try 
     { 
     //.. some code 
     } 
     catch (Exception e) 
     { 
      HandleErrorInfo err = new HandleErrorInfo(e, "ShoppingCart", "CheckOut"); 
      return View("Error", err); 
     } 
     return View("OrderPlaced", order); 
    } 

我可以這樣做嗎?

[DisplayURL(URL="www.domain.com/Products/Catelouge")] 
[HttpPost] 
    public ActionResult CheckOut(Order order) 
    { 
     try 
     { 
     //.. some code 
     } 
     catch (Exception e) 
     { 
      HandleErrorInfo err = new HandleErrorInfo(e, "ShoppingCart", "CheckOut"); 
      return View("Error", err); 
     } 
     return View("OrderPlaced", order); 
    } 
+0

顯示你的控制器方法。 –

+0

@StephenMuecke請參閱我的編輯 –

+0

您需要重定向,不返回視圖 - '返回'RedirectToAction(..)' –

回答

0

解決方案是由斯蒂芬·馬克建議。

使用PRG模式重定向到另一個方法或避免不必要的調用操作方法。謝謝斯蒂芬

0

你就不能重定向到一個新的頁面:

return Redirect("Home/MyNewPage");

+0

View I正在返回顯示用戶有關訂單狀態。我無法從這裏重定向到另一個動作!我需要在訂單放置視圖重新定向到產品頁面後意外地或有意地通過刷新或繼續前一頁提交數據再次提交數據,然後再次提交訂單 –