我有一个简单的网站。几乎每个动作都以int toonId
为参数(toonId不等同于用户:一个用户可以拥有多个卡通)。
目前,我将这个值提供给控制器的每个视图,每个链接和提交按钮都会将此值发送回控制器
这有效。我只是想找到一种更简单的方法来实现这一目标(AOP浮现在脑海中)。
我使用cookie来保存“favorite / default toon”,这很好用(与ActionAttribute一起使用,从cookie获取toonId并传递给toonId参数,如果没有提供toonId)。但我也想支持无cookie会话。
问题:将环境变量添加到页面的简单方法是什么,而不是全部明确地传递它?这样它可以与无cookie浏览器一起使用。
Viewstate是一种可行的方式(不应该在MVC中)吗? 服务器端会话是一种方法吗?
答案 0 :(得分:0)
这正是会话的意思。
asp.net mvc中没有页面生命周期,因此没有viewstate。
答案 1 :(得分:0)
如果您插入自己的IRouteHandler
实现,我相信您可以自动传递查询字符串参数以使用无cookie浏览器。我没有尝试过。我找到了实现IRouteHandler
的{{3}},尽管它没有说明如何实现查询字符串参数功能。
答案 2 :(得分:0)
我不清楚'toonid'代表什么。如果它是'每个用户会话的环境',那么正如womp所述,会话状态将适用于此。但是,如果它具有更大的范围(例如,通常由所有用户访问的toonids的集合),那么缓存将是更好且更具可扩展性的策略。