-4

asp.net mvc 4.0 カミソリを使用しています

私のコントローラーには、ボタンをクリックして実行するストアドプロシージャが5つあります。プロセスは正常に機能しています。ただし、各手順の実行には 30 ~ 60 秒かかります。今回は、javascript を使用して .GIF 画像 (処理中...) を表示できます。しかし、ビュー ページのどこかで各 SP の実行が終了した後にメッセージを表示する必要があります。お気に入り :

  1. 「dbExcel は処理中です」
  2. 「dbExcel プロセスが完了しました」
  3. 「dbCSV は処理中です」
  4. 「dbCSV処理が完了しました」.................................................................. ………………

私はajaxでこれをしなければならないことを学びました。私はこれについて何も知りません.ajaxをよく勉強して自分で解決策を見つけることができない短い時間があります. この問題を解決できる簡単なガイドラインが欲しいです。

4

1 に答える 1

1

MVCでのAjax呼び出しの処理は非常に簡単です。ページビューとしてではなくJSON形式でデータを返すコントローラーでアクションを定義し、jQueryなどを使用してJavaScriptからそれらのアクションを呼び出すことができます。

現在の時刻をティックとして取得するコントローラーメソッドの例を次に示します。

public class HomeController : Controller
{
...

    public JsonResult GetTicks()
    {
        return Json(DateTime.Now.Ticks, JsonRequestBehavior.AllowGet);
    }
}

そしてそれを呼び出すためのjQuery呼び出し:

$.ajax({ 
    url: "/Home/GetTicks", 
    cache: false, 
    success: function (result) {
        alert(result);
    }
});

この手法を使用して、長時間実行タスクの現在のステータスについてサーバーをポーリングし、結果をページに表示できます。2つのコントローラーアクションを作成します。1つはワーカースレッドで実行されているタスクを開始するためのもので、もう1つはタスクの進行状況を報告するためのものです。

Firebugのようなものを使用して、ajax呼び出しのネットワーク要求/応答データを調べることを強くお勧めします。私がこのようなものから始めたとき、それは私を大いに助けました。

于 2013-02-18T19:26:46.420 に答える