我是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()
并显示地图。
@section
标签有问题吗- 我该如何强制页面重新加载它。我已经尝试过执行
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>