jquery.mobile,asp.net,本机锚处理

时间:2013-04-18 17:34:02

标签: asp.net ipad jquery-mobile windows-phone-8

我在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似乎没问题。

感谢。

1 个答案:

答案 0 :(得分:0)

找到了这个:JQuery Mobile Links with MVC

删除了我的JavaScript并将rel="external"添加到每个锚标记中。他们现在按照需要运作。

仍然有兴趣知道是否有更好的方法来解决这个问题。