8

現在、jquery を使用して MVC でプログレス バー付きのアップロード コントロールを作成しようとしています。問題が発生し続けますが、mvc が並列スレッドで機能しないという問題がありますか?

ファイルをアップロードし、JS からサーバーへのいくつかのコールバックを介して実行されるアップロード中に進行状況を表示すると、現在のアップロード状態に関する情報を取得しようとしていますが、ファイルがアップロードされた場合にのみサーバーからの応答が返されます。

MVC でセッション状態クエリを常に取得する方法、またはリクエストが実行されたときに取得する方法を知っていますか?

誰かが答えを知っていれば、他の人もきっと助けてくれると思います!!

4

1 に答える 1

4

ビューを返すアクションを呼び出すと、ビュー ステートが失われます。必要に応じて、TempData を使用してアクション間でデータを渡すことができますが、おそらく問題は解決しません。ここで必要なのは、非同期 JavaScript で呼び出すことができる JSON 要素を返すアクションであるように思えます。

あなたの行動のためにあなたは持っているでしょう:

public ActionResult GetSuggestions(string searchText)
{
    return Json(new { SearchText = searchText + "completestring"});
}

そして、あなたのフォームには、jQuery を使用した非同期 JavaScript があります。

function startAutoComplete() {
    var searchText = $("#inputText").val();
    $.getJSON("/Search/GetSuggestions?searchText=" + searchText, null, autoCompleteResponse);
}

function autoCompleteResponse(data) {
    if (data.SearchText) {
        $("#inputText").val(data.SearchText);
        $("#inputText").select();
    }
}

これにより、フォームを投稿したり、クライアントのビューステートをそのまま維持したりすることなく、サーバーからいくつかの情報を取得できます。

ここに役立つかもしれない例の完全な記述があります。

于 2008-11-30T22:36:25.540 に答える