浏览器后退按钮不会填充MVC应用程序中的下拉列表值

时间:2015-05-19 06:37:12

标签: c# asp.net asp.net-mvc partial-views

我有一个使用c#在MVC5中构建的应用程序。我的观点有5个下拉列表。

这些下拉列表是偏见。 下拉内容: -

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,并在查询字符串中传递了所有参数。

现在我的问题是,如果在到达mysite.com后我需要按浏览器后退按钮,下拉列表的值应该保持不变。我不必再重复整个过程。请建议我可能的替代方案。

2 个答案:

答案 0 :(得分:0)

您可以使用Cookie或TempData或History Javascript(仅限Html5)。 或者你可以在结尾处制作一个PostBack,以便在浏览器中保存价值。

您只能保存选定的值,并重新加载关联数据。

这样的回发: <form action="thispage.aspx?dropdownvalue1=***&dropdownvalue2=**"></form>

答案 1 :(得分:0)

我能想到的最简单的方法是使用查询字符串来存储选定的值。 例如。选择城市时,请重定向到

<强> / selectionPage?城市= selectedCity

然后,在选择事件时,重定向到

<强> / selectionPage城市= selectedCity&安培;事件= selectedEvent

等等。 这样,您将在查询字符串中包含所有选定的值,因此在浏览器历史记录中向后/向前移动将按原样运行。