2013-06-04 59 views
0

我有一個總體佈局在某種程度上看起來像這樣不是在ASP.NET MVC應用程序正常工作jQuery Mobile的AJAX鏈接

<html> 
    <head> 
     ... 
    </head> 

<body> 
    <section data-role="page" data-theme="d"> 
     <section data-role="content"> 
      @RenderBody() 
     </section> 
    ... 
    @Scripts.Render("~/bundles/jquery.mobile") 
    </section> 
</body> 
</html> 

而且我有一對夫婦的控制器和模板推動一些代碼爲總綱的內容片斷。

當我點擊一個鏈接:

<a href="/Orders/EditOrder/14960">Some order</a> 

阿賈克斯裝載機所示,URL的變化,但我看到的是原始頁面的破碎標記。如果我檢查代碼,我會看到DOM中有兩個頁面部分(這意味着目標頁面已成功注入,但未顯示)。 如果我刷新頁面,我會看到目標頁面。

那麼,怎麼了?爲什麼我無法獲得奇特的JQM頁面轉換?謝謝。

回答

0

在負責將您重定向到另一個頁面的鏈接上添加data-ajax ='false'。

除非另有說明,否則JQuery Mobile將使用AJAX導航。 ASP.NET重定向對正常請求沒有問題,但會導致AJAX問題。所以我在這種情況下的答案是關閉AJAX。爲此,您只需將屬性data-ajax ='false'添加到標記中即可。

在我的情況下,一個簡單的解決方案可能是(因爲更改每個Html.ActionLink/Url.Action是耗時的),在_Layout.cshtml的末尾添加(在'body'標籤關閉之前) 。

$(document).on('pageinit', function() { 
    $('a').each(function() { 
    $(this).attr("data-ajax", "false"); 
}); 

});

假如你不希望jQuery手機使用任何帶鏈接的Ajax,那也可以。 您可以在大多數情況下繼續使用Ajax,並且只能在可能導致問題的地方選擇性地關閉它。

相關問題