2010-01-12 100 views
1

这是一个奇怪的。可能很痛苦明显。 :DRedirectToAction无法加载正确的视图

我有一个视图(我们称之为View0.aspx),它将一个表单发布到控制器动作(我们称之为Action1)。 Action1运行,然后返回RedirectToAction("Action2"),然后返回View("View2")

在调试器中运行它,一切都很好(Action2断点被击中)。问题是,它永远不会加载View2.aspxView0.aspx停留在那里。我甚至可以看到调用Action2的路由的HTTP请求,但View2永远不会加载。我甚至没有刷新任何想法?下面

来源:

[AcceptVerbs("POST")] 
    public ActionResult Action1() 
    { 
     // Run action code 

     return RedirectToAction("Action2"); 
    } 

public ActionResult Action2() 
    { 
     // run action code 

     return View("View2"); 
    } 
+0

Action2方法中的断点是否被击中? – tarn 2010-01-12 06:35:56

+0

是的,它碰上了 – jchapa 2010-01-12 06:40:05

+0

还有别的事情吗?例如,从Action1(),你永远不会直接返回Action2(),对吧?可能有助于查看更多代码。 – Terje 2010-01-12 10:10:14

回答

1

我刚发现这个问题。我正在做一个Ajax帖子,这解释了为什么它没有重定向。我把它切换到一个普通的帖子,它的工作。另外,我刚刚注意到我的OP中有一些错误,我正在修复。对于令人困惑的帖子感到抱歉。

+0

如果您需要一个在POST结束时执行RedirectToAction的ActionLink,该怎么办? – MattR 2013-09-26 19:06:43

0

“看到视图2 HTTP请求” - 你的意思了措施2?你不能在MVC中请求视图。 “View0.aspx停留在那里” - 哪里“有”?它是普通的POST还是AJAX化的?如果它是纯粹的POST并且你点击了Action2,那么浏览器已经离开了Action0页面并且将显示新的结果 - 不管它是什么。即使错误也会改变页面。那么,“View0.aspx停留在那里”是什么意思 - 不刷新页面?页面刷新但具有相同的View0内容?你确定View0和View2看起来不一样吗?