2010-01-21 87 views
3

我有一个简单的网站。几乎每个操作都以int toonId作为参数(toonId不等同于用户:一个用户可以拥有多个工具)。
目前我向控制器的每个视图提供该值,并且每个链接和提交按钮都会将此值发送回控制器。
This Works。我只是寻找一种更简单的方法来实现这一点(想到AOP)。ASP.NET MVC:创建一个环境值

我使用cookie来保存“favorite/default toon”,并且这可以正常工作(与ActionAttribute一起使用,从cookie获取toonId并将pass传递给toonId参数,如果未提供toonId)。但我也想支持无cookie的会话。

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

Viewstate是一种走的路(它不应该在MVC中)?
是服务器端会话的一种方式吗?

回答

0

这正是会话的意思。

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

0

我相信如果您插入自己的IRouteHandler实现,我相信您可以自动传递查询字符串参数以使用无cookie浏览器。我还没有尝试过。我发现an example实施IRouteHandler虽然它不显示如何实现查询字符串参数功能。

0

我不清楚'toonid'代表什么。如果它是'每个用户会话的环境',那么正如womp所说,会话状态对此很有效。但是,如果某个事件的范围较大(例如,所有用户普遍可以访问的toonids集合),那么Cache将是一个更好,更可扩展的策略。