mvc 4-Jquery mobile-@分区脚本在导航后不起作用



我是mvc 4和jquery mobile的新手,我想做的是使用jquery ui地图库显示地图。

这是我的:

1) 在布局页面上,我在"身体末端"标签之前的底部有以下代码

@Scripts.Render("~/bundles/jquery","~/bundles/jqueryui")
@Scripts.Render("~/bundles/jquerymobile")
@RenderSection("scripts", required: false)

2) 在索引视图上,我有以下Actionlink

@Html.ActionLink("Display Map","Map", "Home", null, 
new { data_role = "button", data_theme = "b", data_mini = "true" })

当我点击上面的动作链接时,它会获取用户位置,并在谷歌地图上显示标记。

在MAP视图页面上,我在底部有以下代码

@section scripts{
<script type="text/javascript" src="http://maps.google.com/maps/apis?sensor=false">
</script>
<script type="text/javascript" src="@Url.Content("~/Scripts/map/demo.js")"></script>
@Scripts.Render("~/Scripts/map/jquery.ui.map.min.js")
@Scripts.Render("~/Scripts/map/jquery.ui.map.overlays.min.js")
@Scripts.Render("~/Scripts/map/jquery.ui.map.extensions.js")
$(function () {
//code to display the map
});
} 

这是我遇到的问题。。。。当我点击动作链接时,它将显示地图视图,但没有显示地图。

如果我刷新页面(f5或单击浏览器刷新图标),它将调用$function()并显示地图。

  1. @section标签有问题吗
  2. 我该如何强制页面重新加载它。我已经尝试过执行Ajax.Actionlink,或者在控制器操作方法中将cacheduration设置为零,但仍然没有成功

我已经尝试了这个论坛中所有可用的问题和答案,但仍然没有成功。

知道为什么会发生这种事吗?

如果你想保留ajax功能,你也可以移动@RenderSection("scripts",required:false)在你的数据角色="page"div

Vow!!我花了一天的大部分时间才弄明白。。。。我已经升级了nuget软件包,以获得最新的Web.Optimization和其他dll,但到目前为止仍然是不可能的。

最后,我收到了Scott Hanselman的《创建一个伟大的移动网站》的这篇文章。

当我阅读这篇文章时,我看到了这个脚本,并将它放在了我的_Layout页面中。现在我的网站如预期的那样工作。。。。

<script type="text/javascript">
$(document).bind("mobileinit", function () {
// jQuery Mobile's Ajax navigation does not work in all cases (e.g.,
// when navigating from a mobile to a non-mobile page), especially when going    back, hence disabling it.
$.mobile.ajaxEnabled = false;
});
</script>

最新更新