2012-11-26 134 views
0

我有一個post的行動,並在成功時,我想將用戶重定向到另一個網站。 這是我的動作代碼:重定向到另一個網站從POST操作

[HttpPost] 
    public ActionResult RegistartionComplete(Customer customer) 
    { 
     if (ModelState.IsValid) 
     { 
      db1.Entry(customer).State = EntityState.Modified; 
      db1.SaveChanges(); 
      return Redirect(@"http://www.google.com"); 
     } 
     return View(customer); 
    } 

問題是執行後db1.SaveChanges()我重新導向到同一個頁面(根據URL),但與Internet Explorer cannot display the webpage消息。具有斷點測試時,我看到return Redirect(@"http://www.google.com");執行,但它只是返回我同樣的動作視圖。

+0

您真的重定向到google.com嗎?或者僅僅是爲了說明嗎?您是否使用Fiddler(或者瀏覽器開發工具的網絡標籤等)確認重定向確實沒有發生?我相信當重定向導致無法加載的頁面時,某些瀏覽器不會更新URL。所以如果你的目的地沒有加載(你可以在Fiddler中看到,等等),你會得到你描述的行爲。 –

+0

你肯定db1.SaveChanges()不拋出異常? – Mariusz

+0

@Erv目前用於測試目的,我正在重定向到谷歌。這是我使用的確切代碼。 @Mariusz了'調用SaveChanges()'命令不拋出任何錯誤(試了一下還與'嘗試\ catch')。 – Yoav

回答

0

看起來好像一切都應該按照預期方式運行,並在我的測試工作得很好。我建議嘗試以下內容:

  • 嘗試重定向而不更改實體狀態並保存。只要模型有效就做重定向。
  • 可能嘗試包裹在ELSE塊返回查看(客戶)。我知道如果模型是有效的,它不應該是這樣,但我已經看到了更瘋狂的事情發生。
相關問題