1

フォームと [送信] ボタンを備えた Razor/ASP/MVC3 Web アプリケーションがあります。これにより、サーバーで何らかのアクションが発生し、フォームにポストされます。多くの場合、多少の遅延が発生します。ページを閉じたりサイトで他の操作を行ったりする前に、操作が完了するのを待って確認する必要があることをユーザーが認識しておくことが重要です。あると仮定します。

そこで、[送信] ボタンを押すと表示される非表示の Div に「保存中、お待ちください...」スピナーを追加しました。これは非常にうまく機能しますが、Div を取得する方法を見つけることができませんでした。 -アクションが完了すると非表示になります。

私のスピナーDivは次のとおりです。

<div id="hahuloading" runat="server">
  <div id="hahuloadingcontent">
    <p id="hahuloadingspinner">
        Saving, Please Wait...<br />
        <img src="../../Content/Images/progSpin.gif" />
    </p>
  </div>
</div>

その CSS は次のとおりです。

#hahuloading
{
    display:none;
    background:rgba(255,255,255,0.8);
    z-index:1000;
}

次のように実際の送信ボタンを呼び出す、可視ボタンの JS メソッドに「お待ちください」スピナーが表示されるようにします。

    $(document).ready(function () {
        $("#submitVisibleButton").click(function () {
            $(this).prop('disabled', true);
            $("#myUserMessage").html("Saving...");
            $("#myUserMessage").show();
            $("#hahuloading").show();
            document.getElementById("submitHiddenButton").click();
        });
    });

そして、私のビューモデルコードが呼び出され、物事を行い、正常に表示されるユーザーメッセージコンテンツを設定する文字列を返しますが、例でいくつかのコードを実行しようとすると、次のようになりました:

        // Re-hide the spinner:
        Response.write (hahuloading.Attributes.Add("style", "visibility:hiddden"));

「hahuloading は現在のコンテキストには存在しません」と表示されます。サーバーのアクションハンドラーから可視性を設定できるように、Divに対応するビューモデルで変数を定義する方法はありますか? または、ページがアクションから戻ったときに機能するように、div 表示を何らかの値で条件付きにすることはできますか? または、何らかの方法で、サーバーアクションの完了後にdivを再度非表示にする方法を理解するのを手伝ってくれる人はいますか?

ありがとう!

4

1 に答える 1

2

これはajaxで行われますか?ページがリダイレクトされていないので、そうだと思います。これを試して:

$(document).ready(function () {
    $("#submitVisibleButton").click(function () {
        $(this).prop('disabled', true);
        $("#myUserMessage").html("Saving...");
        $("#myUserMessage").show();
        $("#hahuloading").show();
        document.getElementById("submitHiddenButton").click();
    });
    $("#hahuloading").ajaxStop(function () {
     $(this).hide();
    });
});

余談ですが、もう必要ありませんrunat=server

于 2012-11-28T01:40:43.677 に答える