1

我的第一个 MVC 站点有以下要求。我正在完成。

每个页面(有 5 个)顶部都有一些过滤器参数。当用户使用来回按钮或我在主视图中添加的按钮或主页按钮时,我需要实现一种快速简便的方法来记住参数。

例如。用户可以过滤给定月份的第一页中的数据,单击网格的一行上的详细信息,当他按下第二页上的主页按钮时,返回第一页,同时记住他在指定的过滤器第一的。

谢谢

4

2 回答 2

4

好吧,想象你的过滤器是一个对象:

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,在需要/需要时清除它们等。

于 2013-08-22T13:14:55.240 回答
0

如果您使用正确的路由将过滤器参数放入 URL,它将按原样工作,因为 url 将是状态,并且后退和前进按钮从一个 url/状态循环到另一个。您无需执行任何操作。

于 2013-08-22T13:15:56.233 回答