【问题标题】:Response.Redirect in MVC 4 Mobile ApplicationMVC 4 移动应用程序中的 Response.Redirect
【发布时间】:2013-02-01 13:28:37
【问题描述】:

我正在使用 ASP.NET mvc 4 开发移动 Web 应用程序。我遇到了从控制器响应重定向到其他网站(例如:http://www.google.com)的问题,它显示“加载页面错误”消息,但没有重定向。

我已尝试使用以下代码在 Home 控制器上的“关于”操作下重定向:

return Redirect("http://www.google.com"); 

return RedirectResult("http://www.google.com");

response.Redirect("http://www.google.com");

以上所有都产生了相同的错误。

注意:视图页面中的超链接工作正常

谢谢

【问题讨论】:

  • return Redirect("http://google.com"); 可以。一定有其他事情发生。
  • JQM 页面的代码示例可能会带来更好的答案。

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


【解决方案1】:

当您设置到控制器的链接时...您需要确保将data-ajax 属性设置为false

<a href="/MyRedirectingController" data-ajax="false">Redirect</a>

我的理解是,除非另有说明,否则 jQuery mobile 会将所有锚点请求包装在 ajax 中,并且您的 response.redirect 只是被提供给无法正确处理的 jQuery .done 函数。

http://jquerymobile.com/demos/1.2.0/docs/pages/page-navmodel.html

重要提示:rel="external" 和 $.mobile.ajaxEnabled=false

replaceState API 在不同版本中的实现略有不同 浏览器在特定情况下可能会导致奇怪的行为。例如, 一些浏览器实现(包括桌面浏览器)实现 外部链接和返回时的 popstate 事件不同 到状态已经被推送/替换的页面。什么时候 构建一个 Ajax 导航所在的 jQuery Mobile 应用程序 被明确禁用,或者通过频繁使用 rel="external" 在链接上或通过完全禁用 Ajax 导航 $.mobile.ajaxEnabled=false,我们建议禁用 pushState 功能回退到基于哈希的导航以获得更一致的 行为。

【讨论】:

    【解决方案2】:

    我怀疑您的问题是您在本地站点之外重定向。

    查看这部分文档:http://jquerymobile.com/test/docs/pages/page-navmodel.html

    由 jQuery Mobile 创建的哈希值被标准化为完整路径 相对于加载的第一个“真实”页面的 URL。

    然后它在此处确认“本地”要求:

    当一个链接被点击时,jQuery Mobile 将确保该链接是 引用本地 URL

    我认为解决方案是不要将用户重定向到其他域。

    更新

    上述解决方案突出了问题的错误部分,但解决方案可能仍然相同。您应该使用 javascript 进行重定向,例如:

    window.location = 'http://www.google.com/';
    

    如果您的 JQM 解决方案尝试进行 ajax 调用然后重定向,我相信您会遇到问题。一个问题,专门针对 google.com,可能是您是否登录了 google。例如,它会将您重定向到https。这可能会干扰 JQM / window.location.hash

    【讨论】:

    • 重定向发生在控制器/操作级别,而不是在站点内;因此,jQuery Mobile 应该没有相关性。 (除非 jQuery mobile 尝试使用 Ajax 加载页面。如果这是您的意图,我误读并道歉)。
    • @BradChristie - 我相信你是对的,我最初的回答可能会引用 JQM 文档中不相关的部分。我认为答案仍然是不在控制器/动作级别重定向。 javascript 解决方案似乎是首选。
    猜你喜欢
    • 1970-01-01
    • 2011-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多