5

マスターページにcontentPageurlを持つjqueryポップアップログインがあります

Category.aspx

そして背後にあるコードで私は書いた

public void Ligin_Click( object sender,EventArgs e)
{
    string Ret = objLogin.LoginValidate(
                               txtSignInEmail.Text.Trim(), 
                               txtSignInPass.Text.Trim());
     if (Ret == "1")
     {
         Response.Redirect("~/Mobile/Home.aspx?");
     }
}

しかし、Response.Redirect機能していなかったので、私は書いた

Response.Redirect("~/Mobile/Home.aspx?",false);

そしてそれはうまく働いています。ただし、ページのURLは変更されず、前のページのURLのままになります

Category.aspx

Home.aspxのリンクボタンが機能せず、例外がスローされます。無効なポストバックまたはコールバック引数。
イベント検証は、を使用して有効になります

<pages enableEventValidation="true"/> 

構成または

<%@Page EnableEventValidation="true" %> in a page.  

セキュリティ上の理由から、この機能は、ポストバックまたはコールバックイベントへの引数が、それらを最初にレンダリングしたサーバーコントロールから発生していることを確認します。
データが有効で期待される場合は、ClientScriptManager.RegisterForEventValidationメソッドを使用して、検証のためにポストバックまたはコールバックデータを登録します。


手動でurl'home.aspx'と入力すると、正常に機能します。

4

3 に答える 3

8

jQuery Mobile と asp.net Web フォームは基本的に連携しません。ポストバック モデルと jQuery Mobile の ajax フォームの読み込みとナビゲーションには互換性がありません。MVC に移行するか、ajax をオフにします。

jQuery Mobile が初期化される前に、必ずこのコードを呼び出してください。<script>( jQuery Mobile を参照するタグの前に含めます。)

<script src="jquery.js"></script>
<script>
    $(document).bind("mobileinit", function(){
      $.mobile.ajaxEnabled = false;
    });
</script>
<script src="jquery-mobile.js"></script>

http://jquerymobile.com/demos/1.2.0/docs/api/globalconfig.html

于 2013-01-03T13:43:28.253 に答える
0

ajax を無効にする場合は、必要のない要素で data-ajax="false" を使用して無効にすることができます。これをフォームに配置して、応答のリダイレクトを処理できます。(ただし、これで ajax が完全に無効になるわけではありません。たとえば、リンクの場合です。)

window.onload またはお気に入りの jquery init で簡単なスクリプト セクションを追加し、$('form').attr("data-ajax", "false"); でそのページだけのフォーム ajax を無効にすることができます。

于 2016-02-17T12:30:42.117 に答える