2015-05-19 1 views
5

У меня есть приложение, созданное в MVC5 с C#. У меня есть 5 выпадающих списков на мой взгляд.Кнопка возврата браузера не заполняет значение выпадающего списка в приложении MVC

Эти выпадающие списки являются частичными. Содержание выпадающие: -

1) список городов

2) Список событий.

3) перечень мест

4) список дат

5) список времен

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

теперь есть кнопка отправки, когда я нажимаю эту кнопку, она перенаправляет меня на новую страницу с использованием метода контроллеров. Подпись выглядит следующим образом

public ActionResult Redirect(string hdn_city, string hdn_event, string hdn_date, string hdn_venue, string hdn_time) 
{ 
    string urls = String.Format("mysite.com?cid={0}&eid={1}&did={2}&vid={3}&tid={4}", hdn_city, hdn_event, hdn_date,hdn_venue,hdn_time);    
    return Redirect(urls); 
} 

теперь, когда я отправить форму, я перенаправлен mysite.com со всем Params, переданным в строке запроса.

Теперь моя проблема в том, что это необходимо, если после достижения mysite.com я нажимаю кнопку возврата назад, значения выпадающего списка должны сохраняться. Мне больше не нужно повторять весь процесс. Пожалуйста, предложите мне возможные альтернативы.

ответ

0

Вы можете использовать Cookie или TempData или Javascript для истории (только для Html5). Или вы можете сделать PostBack в конце для сохранения значения в браузере.

Вы можете сохранить только выбранные значения и перезагрузить ассоциированные данные.

Отправить следующее: <form action="thispage.aspx?dropdownvalue1=***&dropdownvalue2=**"></form>.

0

Самый простой способ, которым я мог подумать, - использовать строку запроса для хранения выбранных значений. . при выборе города, перенаправлять

/selectionPage? город = selectedCity

Затем, при выборе события, перенаправлять

/selectionPage? город = selectedCity & событий = selectedEvent

И так далее. Таким образом, вы будете иметь все выбранные значения в строке запроса, поэтому перемещение назад/вперед в истории браузера будет работать так, как есть.

+0

Я поставил точку останова на методе действия в контроллере. но когда я использую кнопку браузера, точка останова не попадает. – iGod

+1

Из-за кеша браузера. Вы можете отключить это для определенного действия (используя атрибут действия, см. [Здесь] (http://stackoverflow.com/a/1705113/4910910)). Но зачем вам это делать? Если страница не имеет статуса (т. Е. Выпадающие значения заполняются на основе строки запроса), то это нормально, если она кэширована. –

+0

Спасибо, Александр Сугак. Я думаю, мне нужно как-то использовать строку запроса. Я жду любого решения, которое может помочь мне избежать этого. – iGod