Asp.net mvc ajax链接处理不当
我有一个带有jquery移动应用程序的asp.NETMVC4 在一个页面(url:/StatementBatch)上,我有一个批次列表,它只是指向批次详细信息页面(url:/StetementBatch/details/4)的链接Asp.net mvc ajax链接处理不当,asp.net-mvc,jquery-mobile,Asp.net Mvc,Jquery Mobile,我有一个带有jquery移动应用程序的asp.NETMVC4 在一个页面(url:/StatementBatch)上,我有一个批次列表,它只是指向批次详细信息页面(url:/StetementBatch/details/4)的链接 奇怪的是,一旦点击链接并呈现详细信息页面,浏览器当前的url就变成了http://localhost:49457/StatementBatch#/StatementBatch/Details/4 我需要在应用程序中更改什么才能修复此行为 我猜这是某种与ajax加
奇怪的是,一旦点击链接并呈现详细信息页面,浏览器当前的url就变成了http://localhost:49457/StatementBatch#/StatementBatch/Details/4
我需要在应用程序中更改什么才能修复此行为
我猜这是某种与ajax加载相关的问题,但我的共享_Layout.cshtml文件包含$.mobile.ajaxEnabled=false代码>,我原以为这会扼杀所有ajax加载,但我显然误解了这一点
谢谢 这很奇怪。如果$.mobile.ajaxEnabled=false如果设置了code>,则不应生成ajax链接。请检查您的视图是否正在使用已启用此设置的其他母版页。在相应的视图目录下查找“_ViewStart.cshtml”,查看它链接到的主控形状
要禁用特定超链接的Ajax行为,请使用data Ajax=“false”
属性。如下
<a href="/StatementBatch/Details/4" data-ajax="false">
<h3>January 2012</h3>
<div style="float: right; width: 30%;"><strong>Issued : </strong>1/10/2012 12:00:00 AM</div>
<div style="float: right; width: 30%;">Completed</div>
<p class="ui-li-aside"><strong>1277</strong></p>
</a>
这是使用jQuery mobile时的默认行为。jQuery mobile将使您的所有链接都可以ajaxified。这意味着它将通过ajax加载链接页面的内容并更新url。如果要禁用要ajaxified的链接,可以添加rel
属性,并将external
作为值
<a href="somepagep.aspx" rel="external">This will open without ajax</a>
这个链接有更多关于它的信息我想这可能就是答案
我会试试看我能不能让它工作
将mobileinit
绑定移动到jquery之后,但在jquery之前,mobile完成了这项工作。这似乎是MVC4(新的)移动web应用程序模板中的一个缺陷,它只是将所有脚本捆绑在一起
这失败了
<link href="@System.Web.Optimization.BundleTable.Bundles.ResolveBundleUrl("~/Content/css")" rel="stylesheet" type="text/css" />
<script src="@System.Web.Optimization.BundleTable.Bundles.ResolveBundleUrl("~/Scripts/js")"></script>
<script>
$(document).bind("mobileinit", function() {
// As of Beta 2, jQuery Mobile's Ajax navigation does not work in all cases (e.g.,
// when navigating from a mobile to a non-mobile page, or when clicking "back"
// after a form post), hence disabling it.
$.mobile.ajaxEnabled = false;
});
</script>
$(document).bind(“mobileinit”,function(){
//从Beta 2开始,jQuery Mobile的Ajax导航并非在所有情况下都有效(例如。,
//从移动页面导航到非移动页面时,或单击“上一步”时
//在表单发布之后),因此禁用它。
$.mobile.ajaxEnabled=false;
});
但这是有效的
<link href="@System.Web.Optimization.BundleTable.Bundles.ResolveBundleUrl("~/Content/css")" rel="stylesheet" type="text/css" />
<script src="../../Scripts/jquery-1.7.2.js" type="text/javascript"></script>
<script src="../../Scripts/jquery-ui-1.8.11.js" type="text/javascript"></script>
<script>
$(document).bind("mobileinit", function() {
// As of Beta 2, jQuery Mobile's Ajax navigation does not work in all cases (e.g.,
// when navigating from a mobile to a non-mobile page, or when clicking "back"
// after a form post), hence disabling it.
$.mobile.ajaxEnabled = false;
});
</script>
<script src="../../Scripts/jquery.mobile-1.1.0.js" type="text/javascript"></script>
<script src="../../Scripts/jquery.unobtrusive-ajax.js" type="text/javascript"></script>
<script src="../../Scripts/jquery.validate.js" type="text/javascript"></script>
<script src="../../Scripts/jquery.validate.unobtrusive.js" type="text/javascript"></script>
<script src="../../Scripts/modernizr-2.5.3.js" type="text/javascript"></script>
$(document).bind(“mobileinit”,function(){
//从Beta 2开始,jQuery Mobile的Ajax导航并非在所有情况下都有效(例如。,
//从移动页面导航到非移动页面时,或单击“上一步”时
//在表单发布之后),因此禁用它。
$.mobile.ajaxEnabled=false;
});
谢谢…不,该$.mobile.ajaxEnabled=false位来自主布局页面。只有上面已经提到的那个。。。。我已经知道如何处理数据ajax=“false”。。。我更好奇的是,为什么启用ajax的脚本似乎没有做我认为应该做的事情,“$.mobile.ajaxEnabled=false;”也没有进入它?这是一个全局级别的配置,用于禁用所有要ajaxified的链接。添加这些属性将禁用单个链接。完全理解。但是,真正的问题是,(如果我已经将它们全部禁用,我不需要在单个链接上禁用它们)。。。为什么通用的禁用行为(在新的MVC移动项目中作为默认配置)实际上没有禁用它们……我发布了另一个答案,看起来它将是正确的答案,但我正在努力测试它。。
<link href="@System.Web.Optimization.BundleTable.Bundles.ResolveBundleUrl("~/Content/css")" rel="stylesheet" type="text/css" />
<script src="@System.Web.Optimization.BundleTable.Bundles.ResolveBundleUrl("~/Scripts/js")"></script>
<script>
$(document).bind("mobileinit", function() {
// As of Beta 2, jQuery Mobile's Ajax navigation does not work in all cases (e.g.,
// when navigating from a mobile to a non-mobile page, or when clicking "back"
// after a form post), hence disabling it.
$.mobile.ajaxEnabled = false;
});
</script>
<link href="@System.Web.Optimization.BundleTable.Bundles.ResolveBundleUrl("~/Content/css")" rel="stylesheet" type="text/css" />
<script src="../../Scripts/jquery-1.7.2.js" type="text/javascript"></script>
<script src="../../Scripts/jquery-ui-1.8.11.js" type="text/javascript"></script>
<script>
$(document).bind("mobileinit", function() {
// As of Beta 2, jQuery Mobile's Ajax navigation does not work in all cases (e.g.,
// when navigating from a mobile to a non-mobile page, or when clicking "back"
// after a form post), hence disabling it.
$.mobile.ajaxEnabled = false;
});
</script>
<script src="../../Scripts/jquery.mobile-1.1.0.js" type="text/javascript"></script>
<script src="../../Scripts/jquery.unobtrusive-ajax.js" type="text/javascript"></script>
<script src="../../Scripts/jquery.validate.js" type="text/javascript"></script>
<script src="../../Scripts/jquery.validate.unobtrusive.js" type="text/javascript"></script>
<script src="../../Scripts/modernizr-2.5.3.js" type="text/javascript"></script>