在MVC 4中记住请求中的参数的正确方法

时间:2013-08-22 12:39:10

标签: asp.net-mvc asp.net-mvc-4

我的第一个MVC网站有以下要求。我结束了。

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

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

感谢

2 个答案:

答案 0 :(得分:3)

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

public class SearchFilterPage1 {
  public string Name {get;set;}
  public int SearchValueX {get;set;}
}

在“获取行动”

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;
}

然后,您可以根据需要为每个页面的过滤器使用不同的密钥,在需要时清除它们等等。

答案 1 :(得分:0)

如果您使用正确的路由将过滤器参数放入URL,它将按原样工作,因为url将是状态,后退和前进按钮从一个url / state循环到另一个url / state。你不需要实现任何东西。