2008-11-30 5 views
8

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

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

Вы знаете какой-либо способ получения запросов состояния сеанса в MVC постоянно или при выполнении запроса?

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

ответ

4

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

Для ваших действий вы бы:

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

А потом на форме у вас есть некоторые Asynchronous 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(); 
    } 
} 

Это позволит Вам получить информацию с сервера без размещение формы и поддержание в представлении клиента клиента тактично.

There is a full write up of the example here это может помочь.

+0

`return Json (new {SearchText = searchText +" completeestring "}," text/json ", JsonRequestBehavior.AllowGet);` – Bellash 2013-11-21 21:44:28

Смежные вопросы