【问题标题】:RedirectToAction doesnot change the browser URLRedirectToAction 不会更改浏览器 URL
【发布时间】:2012-09-10 14:26:27
【问题描述】:

我试图通过执行以下语法从帐户控制器(帐户/登录)重定向到用户/索引。

return RedirectToAction("Index", "User");

它显示了正确的视图,但 URL 仍保留为帐户/登录。任何人都可以建议我如何实现同样的目标。我已经尝试了一些来自谷歌的搜索,但它们都不适合我。

【问题讨论】:

  • 处理事件和添加 window.location.href('url') 对你有用吗?
  • 您是否使用 AJAX 调用此控制器操作?因为如果是这种情况,浏览器地址栏不会改变也就不足为奇了——这就是 AJAX 的全部意义所在。
  • 我正在使用@using (Html.BeginForm("Index", "User", FormMethod.Post)) 有输入类型提交。

标签: jquery-mobile razor asp.net-mvc-4


【解决方案1】:

这是由 jQuery-mobile 引起的问题。默认情况下,jQM 将使表单使用 ajax 调用,因为这是在框架中执行页面导航的方式。 AJAX navigation is explained in more detail here.

解决方案是将data-ajax="false" 添加到用于初始服务器调用的表单标记中。

所以你的表单应该是这样的:

@using (Html.BeginForm("Login", "Account", FormMethod.Post, new { data_ajax = "false" }))

【讨论】:

  • 我想在不在视图中的控制器上进行操作。
  • 是的,但问题是由于在视图中使用了 jQuery mobile,您的控制器代码没有任何问题。因此,视图是需要纠正的。
  • 感谢您的回复。我正在使用 @using (Html.BeginForm("Login", "Account", FormMethod.Post)) 检查我的自定义登录逻辑。我从帐户/登录验证用户凭据,如果正确,我需要重定向到用户/索引。
  • 巨大的+1,因为我被困在这个确切的问题上。谁能解释为什么 ajax 调用不允许重定向?
  • 感谢您的解决方案!
猜你喜欢
  • 2012-02-11
  • 1970-01-01
  • 2011-11-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-07
  • 1970-01-01
相关资源
最近更新 更多