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

本文关键字:应用程序 下拉列表 MVC 填充 按钮 浏览器 | 更新日期: 2023-09-27 17:49:44

我有一个用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后,我按浏览器后退按钮的值下拉应该持续存在。我不必把整个过程再重复一遍。

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

您可以使用Cookie或TempData或历史Javascript(仅限Html5)。或者你可以在浏览器的最后做一个PostBack来保存值。

您可以只保存选定的值,并重新加载相关数据。

回复如下:<form action="thispage.aspx?dropdownvalue1=***&dropdownvalue2=**"></form> .

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

/selectionPage吗?城市= selectedCity

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

/selectionPage ?城市= selectedCity&事件= selectedEvent

以此类推。这样,您将在查询字符串中拥有所有选定的值,因此在浏览器历史记录中向后/向前移动将正常工作。