javascript - How to Reset the Values of the Controls in Partial View Upon Clicking on Browser's Back Button -
i need way "reset" dropdownlists in partial view (search section) after re-displaying whole page when user clicks on button of browser.
index view contains search partial view, search updates section in index page, , when user click on 1 of results, details page shown. far good. however, if user clicks on browser's button, index page search partial view displayed again, selected items in dropdownlists. need them reset.
i tried putting
[outputcache(nostore = true, duration = 0)] on top of index method, did not help.
here's partial view (in index view/page)
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); }
modern browsers implement known back-forward cache (bfcache). when hit back/forward button actual page not reloaded (and scripts never re-run).
if have in case of user hitting back/forward keys -- listen bfcache pageshow , pagehide events.
a pseudo jquery example:
$(window).bind("pageshow", function() { // update hidden input field }); 
Comments
Post a Comment