ASP.NET MVC:创建环境值

时间:2010-01-21 17:03:52

标签: asp.net-mvc session viewstate

我有一个简单的网站。几乎每个动作都以int toonId为参数(toonId不等同于用户:一个用户可以拥有多个卡通)。
目前,我将这个值提供给控制器的每个视图,每个链接和提交按钮都会将此值发送回控制器 这有效。我只是想找到一种更简单的方法来实现这一目标(AOP浮现在脑海中)。

我使用cookie来保存“favorite / default toon”,这很好用(与ActionAttribute一起使用,从cookie获取toonId并传递给toonId参数,如果没有提供toonId)。但我也想支持无cookie会话。

问题:将环境变量添加到页面的简单方法是什么,而不是全部明确地传递它?这样它可以与无cookie浏览器一起使用。

Viewstate是一种可行的方式(不应该在MVC中)吗? 服务器端会话是一种方法吗?

3 个答案:

答案 0 :(得分:0)

这正是会话的意思。

asp.net mvc中没有页面生命周期,因此没有viewstate。

答案 1 :(得分:0)

如果您插入自己的IRouteHandler实现,我相信您可以自动传递查询字符串参数以使用无cookie浏览器。我没有尝试过。我找到了实现IRouteHandler的{​​{3}},尽管它没有说明如何实现查询字符串参数功能。

答案 2 :(得分:0)

我不清楚'toonid'代表什么。如果它是'每个用户会话的环境',那么正如womp所述,会话状态将适用于此。但是,如果它具有更大的范围(例如,通常由所有用户访问的toonids的集合),那么缓存将是更好且更具可扩展性的策略。