Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/467.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在单击浏览器时重置局部视图中控件的值';s后退按钮_Javascript_C#_Jquery_Asp.net Mvc_Modelstate - Fatal编程技术网

Javascript 如何在单击浏览器时重置局部视图中控件的值';s后退按钮

Javascript 如何在单击浏览器时重置局部视图中控件的值';s后退按钮,javascript,c#,jquery,asp.net-mvc,modelstate,Javascript,C#,Jquery,Asp.net Mvc,Modelstate,当用户单击浏览器的后退按钮时,在重新显示整个页面后,我需要一种方法来“重置”部分视图(搜索部分)中的下拉列表 索引视图包含搜索部分视图,搜索更新索引页面中的另一部分,当用户单击其中一个结果时,将显示详细信息页面。到现在为止,一直都还不错。但是,如果用户单击浏览器的“上一步”按钮,则会再次显示带有“搜索部分”视图的索引页,但会在下拉列表中显示所选项目。我需要重置它们 我试着把 [OutputCache(NoStore = true, Duration = 0)] 在索引方法之上,但它没有帮助

当用户单击浏览器的后退按钮时,在重新显示整个页面后,我需要一种方法来“重置”部分视图(搜索部分)中的下拉列表

索引视图包含搜索部分视图,搜索更新索引页面中的另一部分,当用户单击其中一个结果时,将显示详细信息页面。到现在为止,一直都还不错。但是,如果用户单击浏览器的“上一步”按钮,则会再次显示带有“搜索部分”视图的索引页,但会在下拉列表中显示所选项目。我需要重置它们

我试着把

[OutputCache(NoStore = true, Duration = 0)]
在索引方法之上,但它没有帮助


这是部分视图(在索引视图/页面中)


以下是控制器代码:

public ActionResult Search()
    {          
        var _citiesList = new SelectList((from c in repository.Cities select c), "CityID", "CityName");

        var searchViewModel = new ServiceProviderViewModel.SearchModel
        {
            CitiesList = _citiesList
        };

        return PartialView("_SearchSP", searchViewModel);          
    }

    [HttpPost]
    public ActionResult Search(ServiceProviderViewModel.SearchModel searchViewModel)
    {
        if (ModelState.IsValid)
        {
            var _serviceProviders = repository.ServiceProviders.
                Where(sp => sp.ServiceTypes.Select(t => t.ID).Contains((int)searchViewModel.ServiceType))
                .Where(sp => sp.DistrictID == searchViewModel.selectedDistrictID);

            return PartialView("_SearchResults", _serviceProviders);
        }
        else
        {
            return PartialView("_SearchSP", searchViewModel);
        }
    }


    public ActionResult GetDistrictsOfTheCity(int cityId)
    {
        var districts = new SelectList(repository.Districts.Where(d => d.CityID == cityId), "DistrictID", "DistrictName");

        return Json(districts, JsonRequestBehavior.AllowGet);
    }

现代浏览器实现了一种称为前向缓存(BFCache)的东西。当您点击后退/前进按钮时,实际页面不会重新加载(脚本也不会重新运行)

如果您必须在用户按下后退/前进键的情况下执行某些操作,请侦听BFCache pageshow和pagehide事件

伪jQuery示例:

$(window).bind("pageshow", function() {
  // update hidden input field
});

查看更多详细信息以了解搜索和实现。

然后不要使用ajax进行完整页面刷新,它将自动重置搜索控件