【问题标题】:RedirectToAction does not change urlRedirectToAction 不会改变 url
【发布时间】:2016-05-06 17:19:01
【问题描述】:

我正在使用 MVC4 应用程序。当用户输入一些 url http://someurl.org?pageName=1000 我的操作方法 Data(int pageName) 被命中。我正在尝试重定向到 pageName=500 并使用 RedirectToAction("Data", new {@pageName = 500})

再次调用操作方法,但我的浏览器 url 没有改变。 我什至用 url 参数尝试了RedirectResult,但这也不起作用。它也不是 Ajax 调用,所以不能使用 Jquery。有什么建议吗?

【问题讨论】:

  • 在 App_start 文件夹中查看您的 routeconfig 文件,也许您的应用程序当前正在加载一些路由..
  • 您实际上是从您的Data 控制器操作调用此 RedirectToAction 方法,还是只是调用RedirectToAction 方法而不对从它返回的结果做任何事情?您能显示Data 操作的代码吗?
  • @Bharat : 在 routeconfig 中没有这样的东西
  • @Darin :我正在做一些比较,基于此,如果条件满足,我将调用 RedirectToAction
  • 好的,请看我的回答以更好地理解我的意思。调用RedirectToAction 方法是不够的。您应该调用RedirectToAction 方法AND从您的操作中返回结果。

标签: c# asp.net-mvc asp.net-mvc-4


【解决方案1】:

您应该确保您实际上是从RedirectToAction 调用返回的结果:

public ActionResult Data(int pageName)
{
    if (pageName == 1000)
    {
        // Notice the return statement in front of the RedirectToAction call
        return this.RedirectToAction("Data", new { pageName = 500 });
    }

    ... something else
}

【讨论】:

  • 我只用过这个..虽然它下次获取500的数据;浏览器url没有改变..当我搜索谷歌时,它显示jquery mobile在MVC中有同样的重定向问题..但我有桌面应用程序
猜你喜欢
  • 2012-02-11
  • 1970-01-01
  • 1970-01-01
  • 2013-06-07
  • 1970-01-01
  • 1970-01-01
  • 2020-01-25
  • 1970-01-01
  • 2013-05-09
相关资源
最近更新 更多