2009-04-18 91 views
0

我正在ASP.NET MVC中编写一个学习项目。我有一个显示用户书籍的“书籍”页面,并且在该页面中有几个排序和过滤选项。ASP.NET MVC存储页面特定设置


书页

排序参数:名称,年份,作者... 过滤参数:读,未读...


当用户选择如“标题排序参数“,控制器按标题对书籍进行排序并返回查看。然后,如果用户选择”读取“过滤器,我希望列出的书籍按”标题“排序并通过”读取“参数进行过滤。

据我所知,我必须存储排序和过滤参数来做到这一点。我不确定什么是最好的和简单的方法,因为我对ASP.NET中的Session,HttpContext,Tempdata概念有点困惑MVC。我可以使用传统的ASP.NET Webforms Session方式来做到这一点,但有些人说使用会话可能会带来问题。有什么选择,什么是最好和简单的方法来做到这一点?

回答

0

这取决于您希望选择是持久的,因为用户在站点周围导航然后返回到页面。如果需要保持持久性,那么在会话中存储选项是一种合理的方法。如果选择仅适用于特定页面,则可以将选择放入ViewData中,并在视图中选择ViewData(或Model)中的值。这样,当页面返回给浏览器时,每次往返的选择都会产生正确的默认值。

我个人的感觉是,选择应该保留整个会议,我保持我的价值存储在会议。

0

MVC框架有一些很棒的选择。一种是在表单上隐藏输入,用于存储信息。所以,当你点击一个度假村按钮,然后在该字段上键入确定排序顺序。

第二种更优雅的做法是让它具有与您的按钮相关的值,所以如果我点击标题按标题排序,如果我按作者按作者排序。控制器将能够检测到这一点。

最后,有一些优秀的JavaScript控件可以使用,自动为你做所有这些。想到的是EXT电网控制,这绝对是一个很好的选择。它涉及JavaScript的一些工作,但它完全值得!希望这可以帮助