我在asp.net 4.5上使用jquery.mobile(1.3.1)开发了一个应用程序。
第一页由一个列表组成,该列表中项目的选择指向另一页。我已经单独开发了这些页面。
单击列表中的某个项目时,第二页显示正确,但URL不正确。我相信这是因为jquery.mobile正在拦截链接点击并处理页面转换本身 - 我不希望这样,并希望链接自然地表现。
http://myhost/mobile
http://myhost/mobile/NewClient.aspx
http://myhost/mobile/#/myhost/mobile/NewClient.aspx?ClientID...
页面列表代码:
<div data-role="page" id="logon" data-theme="c">
<div data-role="header" data-position="fixed">
<h1>Select location</h1>
</div>
<div data-role="content">
<asp:ListView ID="LocationList" runat="server"
ItemType="AGP.BackOffice.Model.ClientSource"
DataKeyNames="ID" SelectMethod="LocationList_SelectMethod"
OnItemDataBound="LocationList_ItemDataBound">
<LayoutTemplate>
<ul data-role="listview" data-inset="false" data-divider-theme="b">
<asp:PlaceHolder ID="itemPlaceholder" runat="server" />
</ul>
</LayoutTemplate>
<ItemTemplate>
<li data-theme="c">
<asp:HyperLink ID="HyperLink" runat="server" NavigateUrl="~/Mobile/NewClient.aspx?ClientSourceID={0}&IsMinimalDataCapture={1}"
data-transition="slide" Text="<%#: Item.Description %>" />
</li>
</ItemTemplate>
</asp:ListView>
</div>
</div>
我发现各种文章声称jquery.mobile中的内置页面处理可以按如下方式关闭...
<script type="text/javascript">
$(document).bind("mobileinit", function () {
$.mobile.ajaxEnabled = false;
$.mobile.linkBindingEnabled = false;
});
</script>
我在data-role =“page”div之前添加了这个,但它没有区别。
有人可以对此有所了解吗?我只是想让浏览器按原样处理链接,同时仍然利用jquery.mobile UI元素。
我还应该指出,这种行为只能在移动设备上看到(在WP8和iPad上测试过)。在桌面上,URL似乎没问题。
感谢。
答案 0 :(得分:0)
找到了这个:JQuery Mobile Links with MVC
删除了我的JavaScript并将rel="external"
添加到每个锚标记中。他们现在按照需要运作。
仍然有兴趣知道是否有更好的方法来解决这个问题。