В настоящее время я пытаюсь создать элемент управления загрузкой с индикатором выполнения в MVC с помощью jquery. Но у меня все еще возникает проблема в том, что mvc не работает в параллельных потоках?
Когда я загружаю файл и показываю прогресс во время загрузки из JS, выполняемой через несколько обратных вызовов на сервер, я пытаюсь получить информацию о текущем состоянии загрузки, но ответ с сервера возвращается только после того, как файл был загружен.
Вы знаете какой-либо способ получать запросы состояния сеанса в MVC постоянно или когда запрос выполняется?
Был бы очень признателен за помощь, и я уверен, что другие будут, если кто-то знает ответ !!





Вы потеряете состояние просмотра, если вызовете действие, возвращающее View. Вы можете передавать данные между действиями, используя 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();
}
}
Это позволит вам получать некоторую информацию с вашего сервера, не отправляя форму и не изменяя состояние просмотра клиента.
Здесь есть полное описание примера., который может помочь.
return Json(new { SearchText = searchText + "completestring"},"text/json",JsonRequestBehavior.AllowGet);