在AccountController中,在我拥有的方法的最后:
RedirectToAction("EveryView", "Account");
在同一个控制器文件中,我有这个方法:
public ActionResult EveryView()
{
return View();
}
但这种方法永远不会被调用。我在'{'上有一个断点,它永远不会被击中!
答案 0 :(得分:56)
你已经'返回',否则它不会重定向。
return RedirectToAction("EveryView", "Account");
答案 1 :(得分:10)
也许一点调试可能会有所帮助! 尝试在默认的Index()ActionResult内部创建一个新的TestController:
return RedirectToAction("EveryView", "Test");
然后,创建EveryView()ActionResult方法并设置断点。
public ActionResult EveryView()
{
return View();
}
如果您尝试http://localhost/Test/Index会发生什么?它有效吗?
如果这不起作用,也许您可能需要查看您的路线,并确保您没有特定的路线定义可能会让事情破裂。
或者,您可以在Global.asax
内添加此方法:
protected void Application_Error(object sender, EventArgs e)
{
Exception ex = Server.GetLastError();
}
并在线上设置一个断点以捕捉任何未知错误。
答案 2 :(得分:8)
我最近的项目也遇到了这个问题。我最后通过在重定向的操作上添加[AllowAnonymous]来解决它,因为控制器用[Authorize]属性修饰,此时用户没有登录。希望这是一个帮助。
答案 3 :(得分:1)
我遇到了这个问题,这是因为我添加的自定义MustBeLoggedIn过滤器不允许重定向到该方法,类似于user2192287。
这意味着我过滤器正在将我重新引导回我开始的动作。
这可能是petko_stankoski的问题,因为它在他们的帐户控制器中。
答案 4 :(得分:1)
我有类似的问题。我刚从函数中删除了post属性[HttpPost]到我重定向的位置。
答案 5 :(得分:0)
如果未调用Action方法,则可能是因为该方法已为HttpPost注册,但是您正在发送HttpGet请求。因此,最好保留使用[AcceptVerbs(HttpVerbs.Get | HttpVerbs.Post)]
接受两个请求的方法。答案 6 :(得分:0)
您必须归还
public ActionResult Pay(string id)
{
return RedirectToAction("EveryView", "Account");;
}
答案 7 :(得分:-1)
评论所有已加载的脚本并再次尝试。此脚本的干扰