2011-12-23 17 views
0

我有一個控制器,它具有一個Create方法來處理表單中的HttpPost數據。包含窗體頁面由URLMVC3 URL路由 - 使用以前的URL渲染視圖(如回傳)

CallOutcome/Call?orderId=114565 

訪問時提交表單,我做一個數據庫插入&創建被返回到視圖,再次顯示形式的視圖模型對象。這工作正常,但是URL現在已更改爲我的操作方法的名稱:

CallOutcome/Create 

如何使其顯示原始URL?理想的結果就像它像回發一樣工作,即重新顯示相同的頁面和URL。

這是我(簡化)action方法,它返回一個CallDetailsViewModel對象到一個名爲「呼叫」視圖:

[HttpPost] 
public ActionResult Create(GGAP_CallOutcome callOutcome) 
{ 
    if (ModelState.IsValid) 
    { 
     callRepository.SaveCallOutcome(callOutcome); 
     return View("Call", new CallDetailsViewModel{ 
      CustomerOrder = new CustomerOrder{}, 
      CallOutcome = new CallOutcome{}, 
      Task = new Task{} 
     }); 
    } 
} 

回答

0

我想你應該看看後重定向消息獲取模式(PRG模式) 。

實現細節可以在此question中找到。

恕我直言,有趣的時刻是如何使用TempData來管理無效的ModelState。

0

迴應不多!也許接近聖誕節?

爲了記錄在案,我用RedirectToRoute:

return RedirectToRoute(new 
{ 
    controller = "CallOutcome", 
    action = "Call", 
    orderId = Convert.ToInt32(callOutcome.OrderId) 
}); 

這不正是我想要的。