MVC с удалением Jquery ajax и как сохранить подкачку и другой фильтр в строке запроса?

У меня есть страница поиска с одним выпадающим списком, одной кнопкой и одним частичным просмотром результатов поиска. когда пользователь нажимает кнопку, он будет использовать запрос на получение для фильтрации данных с пейджингом. для табличных данных последний столбец - это ссылка «удалить», в настоящее время функция удаления работает нормально с помощью jquery ajax post, но я просто не могу правильно обновить данные. Причина этого в том, что мне нужен текущий URL-адрес поиска (или строка запроса, такая как значение фильтра и номер подкачки), чтобы сохранить выбор пользователя таким же. Как я могу этого добиться?

Спасибо

Вот мое действие по умолчанию с двумя параметрами

        public ActionResult Default(string state, int? page = 1)
    {
        const int pageSize = 10;
        SearchModel model = new SearchModel();
        int total;

        List<xxx> result = _repo.SearchByState(state, page.Value, pageSize, out total);

        model.PageInfo = Pagination.ToPagedList<xxx>(result, page.Value, pageSize, total, 10);
        model.State = state;
        model.TotalCount = total;          
        return View(model);
    }

person Vincent    schedule 02.06.2011    source источник
comment
Является ли каждый разбитый на страницы сегмент отдельным запросом? Или все данные отображаются и разбиваются на страницы на стороне клиента?   -  person David Fox    schedule 02.06.2011
comment
это отдельный запрос. поэтому при нажатии кнопки сначала выдается запрос на получение с выбором раскрывающегося списка, затем при нажатии ссылки пейджера он берет существующий выбор, а затем выполняет пейджинг. посмотри мой фрагмент кода   -  person Vincent    schedule 02.06.2011


Ответы (1)


Что я делал в прошлом, так это сохранял экземпляр моего фильтра/критерия поиска и передавал его по мере необходимости. В этом сценарии я использовал в основном вызовы AJAX для получения и установки данных. Таким образом, ваш объект критериев в JavaScript может выглядеть так (по умолчанию):

var criteria = {
  name : {}, 
  title : {}, 
  pageSize : 10, 
  currentPage : 1
};

Затем при успешном обратном вызове из вашего вызова AJAXy Delete вызовите Get/LoadData и передайте объект критерия.

person Kon    schedule 03.06.2011