Состояние сеанса ASP.NET MVC - PullRequest
8 голосов
/ 01 декабря 2008

В настоящее время я пытаюсь создать элемент управления загрузкой с индикатором выполнения в MVC, используя jquery. Я продолжаю сталкиваться с проблемой, однако в том, что MVC не работает в параллельных потоках?

Когда я загружаю файл и показываю прогресс во время загрузки из JS, выполненной через несколько обратных вызовов на сервер, я пытаюсь получить информацию о текущем состоянии загрузки, но ответ с сервера возвращается только после загрузки файла.

Знаете ли вы, как можно получать запросы состояния сеанса в MVC постоянно или когда запрос выполняется?

Был бы очень признателен за помощь, и я уверен, что другие будут рады, если кто-то знает ответ !!

1 Ответ

4 голосов
/ 01 декабря 2008

Вы потеряете свое состояние просмотра, если вызовете действие, которое возвращает представление. Вы можете передавать данные между действиями, используя TempData, если хотите, но это, вероятно, не решит вашу проблему. Похоже, что вы хотите здесь, это действие, которое возвратит элемент JSON, который вы можете вызвать с помощью некоторого асинхронного JavaScript.

Для вашего действия у вас будет:

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

А затем в вашей форме у вас есть какой-то асинхронный JavaScript с использованием jQuery:

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();
    }
}

Это позволит вам получить некоторую информацию с вашего сервера, не публикуя форму и не нарушая состояния клиента.

Здесь приведена полная запись примера , который может помочь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...