我的第一个 MVC 站点有以下要求。我正在完成。
每个页面(有 5 个)顶部都有一些过滤器参数。当用户使用来回按钮或我在主视图中添加的按钮或主页按钮时,我需要实现一种快速简便的方法来记住参数。
例如。用户可以过滤给定月份的第一页中的数据,单击网格的一行上的详细信息,当他按下第二页上的主页按钮时,返回第一页,同时记住他在指定的过滤器第一的。
谢谢
我的第一个 MVC 站点有以下要求。我正在完成。
每个页面(有 5 个)顶部都有一些过滤器参数。当用户使用来回按钮或我在主视图中添加的按钮或主页按钮时,我需要实现一种快速简便的方法来记住参数。
例如。用户可以过滤给定月份的第一页中的数据,单击网格的一行上的详细信息,当他按下第二页上的主页按钮时,返回第一页,同时记住他在指定的过滤器第一的。
谢谢
好吧,想象你的过滤器是一个对象:
public class SearchFilterPage1 {
public string Name {get;set;}
public int SearchValueX {get;set;}
}
在您的 Get 操作中
public ActionResult Index() {
var filter = (SearchFilterPage1)HttpContext.Current.Sesssion["FilterPage1"]
?? new SearchFilterPage1();
var model = someMethodForSearching(filter);
return View(model);
}
当您的过滤器更改时(假设您使用发布操作)
public ActionResult Filter(SearchFilterPage1 filter) {
HttpContext.Current.Session["FilterPage1"] = filter;
return something;
}
然后,您可以根据需要为每个页面的过滤器使用不同的 Key in Session,在需要/需要时清除它们等。
如果您使用正确的路由将过滤器参数放入 URL,它将按原样工作,因为 url 将是状态,并且后退和前进按钮从一个 url/状态循环到另一个。您无需执行任何操作。