我有一个看起来像这样的主布局
<html>
<head>
...
</head>
<body>
<section data-role="page" data-theme="d">
<section data-role="content">
@RenderBody()
</section>
...
@Scripts.Render("~/bundles/jquery.mobile")
</section>
</body>
</html>
我有几个控制器和模板将一些代码推送到主布局的内容部分。
当我点击链接时:
<a href="/Orders/EditOrder/14960">Some order</a>
显示了ajax加载程序,url发生了变化,但我看到的只是原始页面的破坏标记。如果我检查代码,我将看到DOM中有两个页面部分(这意味着目标页面已成功注入但未显示)。 如果我刷新页面,我将看到目标页面。
那有什么不对?为什么我不能得到花哨的JQM页面转换?谢谢。
答案 0 :(得分:0)
在负责将您重定向到另一个页面的链接上添加data-ajax ='false'。
JQuery Mobile使用AJAX导航,除非您另有说明。 ASP.NET重定向对正常请求没有问题,但会导致AJAX问题。所以我在这种情况下的答案是关闭AJAX。为此,您所要做的就是将属性data-ajax ='false'添加到标记中。
在我的情况下,一个简单的解决方案可能是(因为更改每个Html.ActionLink / Url.Action非常耗时),在_Layout.cshtml的末尾添加它(在关闭'body'标签之前)。
$(document).on('pageinit', function() {
$('a').each(function() {
$(this).attr("data-ajax", "false");
});
});
如果您不希望jQuery mobile也使用带链接的任何Ajax,那就没关系了。 在大多数情况下,您可以继续使用Ajax,只有选择性地将其关闭才能导致问题。