2

所以,我有我的網站在生產和間歇運行(是的,uhoh)......這些重定向似乎沒有被髮生HTTP重定向在MVC3 .NET

public ActionResult Create() 
{ 
    string newuserid = BizLayer.CreateUser(); 

    return RedirectToRoute("MyController/MyAction", new { userid = newuserid }); 
} 

用戶獲取創建精細,代碼肯定會過去生成newuserid,但下一個控制器操作永遠不會進入。所以我想知道我是否正確理解重定向。在輸入新的操作之前,新的URL是否會被髮送回客戶端?一旦創建()進入,應在接下來的動作處理是不可避免的(假設Bizlayer沒有崩潰),或是否有可能阻止其瀏覽器的情況呢?

這裏的地方,應該去:

public ActionResult MyAction(string userid, DateTime? date) 

這裏的路由:

routes.MapRoute(
     "MyController/MyAction", // Route name 
     "MyController/MyAction/{userid}/{date}", // URL with parameters 
     new 
     { 
      controller = "MyController", 
      action = "MyAction", 
      date = UrlParameter.Optional 
     } // Parameter defaults 
    ); 

基本上我想知道,可以在客戶端拒絕MVC重定向和防止重定向到一個新的控制器行動發生?

回答

0

您是否嘗試過在RouteValueDictionary指定所有值?你可能想給這一個鏡頭......

RedirectToRoute(new { Controller = ..., Action=..., userid=...}) 
+0

感謝您的想法。 –

0

你試過:

public ActionResult Create() 
{ 
    string newuserid = BizLayer.CreateUser(); 

    return RedirectToRoute("MyController/MyAction", new { userid = newuserid, date = null }); 
} 
+0

這就是我如何命名我的路線。 RedirectToAction放置一個?參數在URL中,我不想要。 –

+0

我懷疑那個。您編輯的示例代碼,所以沒有誤解=) –

+0

當然,我已經添加了路由在那裏。 –

0

你試過嗎?

return RedirectToAction("MyAction", "MyController", new { userid = newuserid }); 
+0

RedirectToAction把一個?參數在URL中,我不想要。 –

+0

如果userid在你的路由中,它會將它添加到url中,而不是查詢字符串。 – Phil