2012-02-26 5 views
1

Mvc3 Jquery mobile dialogがポストバックのバグを引き起こしますか?私はこのように私のスタートページにjqueryの携帯ダイアログ開くと

@Html.ActionLink("DialogPage", "DialogPage", "Home", null, new {data_rel="dialog" }) 

をして、Xボタンを使用してダイアログを閉じ、スタートページは、私が正しい行動だと思うどの再ロードされません。

しかし、2番目のページに移動すると、2番目のページで全く同じ方法でjqueryモバイルダイアログを開き、Xボタンを使用してダイアログを閉じると、2番目のページがリロードされます。

これは再現が非常に簡単です。これはバグですか、それとも何らかの形で期待される動作ですか? これは数日間(今でも数週間)私を夢中にさせてくれました。私を助けてください。

編集:(太字ヘッダーで)私はjsfiddle内のページをリンクする方法を知らないが、ここで私のソースコードは、3つのページに分割される:

スタートページ:

<!DOCTYPE html> 
<html> 
<head> 
    <title>Home Page</title> 
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0;" /> 
    <meta name="apple-mobile-web-app-capable" content="yes" /> 
    <link type="text/css" href="Content/themes/base/jquery.mobile/jquery.mobile-1.0.min.css" rel="stylesheet" /> 
    <script type="text/javascript" src="Scripts/jquery-1.6.4.min.js"></script> 
    <script type="text/javascript"> 
     $(document).bind("mobileinit", function() { 
     }); 
    </script> 
    <script type="text/javascript" src="Scripts/jquery.mobile/jquery.mobile-1.0.min.js"></script> 
</head> 
<body> 
<div data-role="page" id="page1"> 
    <div data-theme="c" data-role="header" data-position="inline" style="height: 70px; background-image: url('/Intranet/Mobile/Images/Bg_Main.png'); background-repeat: repeat-x"> 
     <h1>header</h1> 
    </div> 
    <h2>Jquery mobile dialog bug?</h2> 
    <div data-role="content"> 
     <a href="../Dialog/Dialog" data-rel="dialog">First dialog without postback behavior</a> 
     <br /> 
     <br /> 
     <a href="/SecondPage/TheSecondPage">Link to second page containing a dialog with postback</a> 
    </div> 

    <div data-role="footer" data-theme="c" class="ui-bar"> 
    </div> 
</div> 
</body> 
</html> 

2ページ目:

<!DOCTYPE html> 
<html> 
<head> 
<title></title> 

<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0;" /> 

<meta name="apple-mobile-web-app-capable" content="yes" /> 

<link type="text/css" href="../Content/themes/base/jquery.mobile/jquery.mobile-1.0.min.css" rel="stylesheet" /> 

<script type="text/javascript" src="../Scripts/jquery-1.6.4.min.js"></script> 

<script type="text/javascript"> 
    $(document).bind("mobileinit", function() { 
    }); 
</script> 

<script type="text/javascript" src="../Scripts/jquery.mobile/jquery.mobile-1.0.min.js"></script> 
</head> 
<body> 
<div data-role="page" id="page1"> 
    <div data-theme="c" data-role="header" data-position="inline" style="height: 70px; background-image: url('/Intranet/Mobile/Images/Bg_Main.png'); background-repeat: repeat-x"> 
<h1> 
    header</h1> 
</div> 
<div data-role="content"> 
<a href="../Dialog/Dialog" data-rel="dialog">Dialog with postback behavior</a> 
<br /> 
<br /> 
</div> 
    <div data-role="footer" data-theme="c" class="ui-bar"> 
    </div> 
</div> 
</body> 
</html> 

ダイアログページ:

<div data-role="content" data-theme="a" > 
This is the dialog. 
</div> 

もっと簡単にするためにできることがあれば教えてください。

編集2:これは、関連すると思います。 https://github.com/jquery/jquery-mobile/issues/3549#issuecomment-4060809 同様の例が含まれています。

+0

これは再現が簡単な場合は、コードの一部を投稿したり、jsbinやjsfiddle.netに入れた方がいいですか? – shanabus

答えて

0

これがあなたの問題であるかどうかは分かりませんが、うまくいけばそれがあります。 :)]ダイアログページで、あなたはこのジャバスクリプトが実行されていないことを確認してください:あなたはアヤックスを無効にした場合

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

、それはあなたが戻ったときにページがリフレッシュする原因となる、背中完全なポストを行います。

+0

これは問題ではありません。 Ajaxは有効です。とにかくありがとう。 – user1052055

関連する問題