2015-07-30 2 views
0

Это проект mvc. У меня есть таблица html на первой странице, чтобы отобразить результат поиска, два фильтра на верхней части страницы, один - текстовое поле, другое - выпадающее меню. В таблице есть столбец с именем view. Это ссылка. По ссылке вы перейдете на страницу сведений. Когда вы вернетесь на первую страницу, текстовое поле и выпадающее меню потеряют значение, введенное пользователем ранее. Я бы хотел, чтобы они могли хранить вход пользователя. Для webform это легко. Я могу поместить их в сеанс или в viewstate. Но в mvc, где я должен хранить значение, и когда он вернется, может загрузить это значение? сеанс или tempdata? Спасибоmvc наилучшая практика для хранения пользовательского ввода

+0

Что случилось с использованием базы данных? –

+1

Возможно, вместо перенаправления на другое представление, которое отображает отфильтрованные результаты на основе раскрывающегося списка/txtbox, вы можете рассмотреть возможность использования ajax для вызова контроллера, который возвращает частичный просмотр, обновляет текущую страницу (и улучшает производительность) –

+0

[Здесь пост] (http://stackoverflow.com/questions/10756140/asp-net-mvc-and-state-how-to-keep-state-between-requests), связанный с этим вопросом. – zed

ответ

0

Вы можете хранить все выбранные вами данные и данные в сеансе. Но для большей скорости вы можете сделать свой поиск с помощью ajax-звонка, как упоминал Стивен.

Попробуйте использовать метод jquery.get() для загрузки данных с помощью вызова ajax. Этот метод отправляет запрос на страницу с/без данных и считывает ответ. Ответ - отображаемый html. Вы можете найти более подробную информацию здесь https://api.jquery.com/jquery.get/

Предположим, что на вашем контроллере есть действие PartialView, которое принимает 2 параметра.

public PartialViewResult Search(string txt, string dropdown) 
{ 
// do your search 
return PartialView(YourModel); 
} 

А в вашем яваскрипте кода необходимо выполнить следующие действия

$.get('/Home/Search',{txt:'yourTextboxValue',dropdown:'YourDropdownValue'},function(data){ 
// data is the html response that generated in partial view 
$('#yourSearchContentDiv').html(data); 
}); 
Смежные вопросы