2012-11-26 81 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块返回查看(客户)。我知道如果模型是有效的,它不应该是这样,但我已经看到了更疯狂的事情发生。
相关问题