Долгое время скрывался первый раз, так что, эй!
TL: DR - как мне сохранить значение от исходного контроллера загрузки страниц до метода ajax, не передавая его как объект json как часть запроса ajax? И я не могу использовать сессию []!
Backstory - я работаю над функцией поиска фильтра, которая возвращает большой список объектов при начальной загрузке страницы, сгенерированный из вызова базы данных, и заполняет Model.FullResults
.
Чтобы отфильтровать результаты, а не продолжать выполнять больше вызовов базы данных при каждом нажатии фильтра, я просто фильтрую результаты с помощью linq в методе AJAX, например:
var fullResults = @Html.Raw(Json.Encode(Model.FullResults));
var obj = {
//filter tickboxes statuses etc are here
fullResults: fullResults
}
var jqxhr = $.ajax({
//urls etc removed for clarity
data: JSON.stringify(obj),
success: function (response) {
//stuff
}
}
});
Что отлично работает для небольших значений Model.FullResults. Однако, если Model.FullResults
довольно большой (то есть на моей главной странице поиска), это большой объем данных, которые каждый раз передаются через ajax, и единственная причина, по которой я даже передаю его таким образом, это просто для Я не знаю, как еще я могу «сохранить» эти данные от исходного действия контроллера и при этом использовать их для использования метода ajax.
Хранение Model.FullResults
в Session было недолгой мыслью, но есть большая вероятность, что люди откроют несколько вкладок, попавших в один и тот же контроллер, что сделает сессию устаревшей. Нечто подобное Viewdata было бы идеальным, но я, конечно, не могу получить к нему доступ в методе ajax
Так, как бы я сохранил это значение для использования в методе ajax? Должен ли я прибегнуть к другому вызову базы данных ИЛИ передать его в метод ajax? Должен быть какой-то способ его сохранить?
Заранее спасибо вам полезная связка! :)