6

MVC3 アプリがあり、ajax 読み込みイメージを追加する必要があります。私はこれを私の見解に入れました

    @using (Ajax.BeginForm(
      "LogOn","Account",
      new AjaxOptions { LoadingElementId = "div_loading" }))

これは同じビューの私の非常に単純な div です:

  <div id="div_loading" style="display:none;">
   <img src="@Url.Content("~/Content/Images/loading.gif")" alt="" />
 </div>

フォームを送信するために送信ボタンをクリックすると、loading.gif が表示されません。コードは正常に実行されますが、ロード インジケーターが表示されません。そして、画像は正しく適切な場所に名前が付けられています。誰かが理由を知っていますか?

更新 どうやら、これは Telerik アプリケーションと関係があります。通常の MVC3 アプリを作成すると動作します。Telerik MVC3 アプリを作成すると、機能しません。他の誰かが Telerik でこれに遭遇しましたか?

4

4 に答える 4

14

こちらからもお試しいただけます

function AjaxBegin()
{
    $('#div_loading').show();

}
function AjaxComplete()
{
    $("#div_loading").hide();
}
function AjaxFailure(ajaxContext)
{
    var response = ajaxContext.responseText;
    alert("Error Code [" + ajaxContext.ErrorCode + "] " + response);
}


AjaxOptions:

OnFailure = "AjaxFailure";
OnBegin = "AjaxBegin";
OnComplete = "AjaxComplete";
于 2012-05-30T16:41:39.753 に答える
6

私は、私が行うすべてのajax呼び出しにロードiamgeをアタッチすることを躊躇することを好みます。

ここでの一番の答えは、ajaxが送信呼び出しを行うたびにajaxスピナー(画像の読み込み)を表示するソリューションです。

ajaxを待っている間にスピナーを表示する

それはあなたが必要とする機能を持っています。javascriptを使用して、画像の表示をajax呼び出しにアタッチするだけです。

次のようになります。

<script type="text/javascript">
        $(document).ready(function () {
            BindSpinner();
        });

        function BindSpinner() {
            $("#div_loading").bind("ajaxSend", function () {
                $(this).show();
            }).bind("ajaxStop", function () {
                $(this).hide();
            }).bind("ajaxError", function () {
                $(this).hide();
            });
        };
    </script>

これは、ajax sendでdivを表示し、ページ上のすべての呼び出しでajaxの停止またはエラー時にdivを非表示にします。このスクリプトとdivを_layoutに配置すると、サイトでのすべてのAjax呼び出しに対してこれが実行されます。

于 2012-05-30T16:15:59.507 に答える
1

代わりにこれを試してみてください。ここのSOの質問から得ました

<div id="div_loading" style="visibility:hidden;">
   <img src="@Url.Content("~/Content/Images/loading.gif")" alt="" />
</div>
于 2012-05-30T16:26:43.740 に答える
1

同じ問題があり、要素の名前を非表示/表示に変更して解決できました。私はキャメルケース形式を使用しました: "myDivToBeHidden"

この要素には、「表示」プロパティを「なし」に設定する必要があります。

于 2016-07-18T14:18:41.383 に答える