【问题标题】:asp.net mvc save user selection globallyasp.net mvc 全局保存用户选择
【发布时间】:2015-02-17 22:27:11
【问题描述】:

我正在开发一个 mvc 5 网络应用程序,它允许用户选择要向他们显示的语言和货币,其中他们选择的语言和货币预计可以在整个控制器和视图中检索。

请注意,我在这里指的用户是匿名用户(即未登录的用户),因此我不打算将他们的选择保存到数据库中。

我正在考虑使用会话来存储选择。但是,这对我来说似乎不是一个好的选择,因为这些只是我需要在会话中存储的两个值。还有其他更好的选择吗?

【问题讨论】:

  • 在我看来,会话完全没问题。这些是您将存储的 2 个小值,如果您没有过多地摆弄,此会话最终将超时;另一方面,您可以使用 cookie。
  • 不要使用会话,使用 cookie。
  • 它归结为三个选项之一:会话,不容易扩展; cookie,用户可以禁用;或存储在网页中(作为隐藏字段或作为 URL 的一部分)。每个都有好的和坏的选择。
  • 我明白了。有没有一种叫做全局viewbag的方法?

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


【解决方案1】:

另一种方法是将语言放在 url 中

{language}/{controller}/{action}/{id}

例如

zh/首页/索引

fr/home/index

优点是网址可收藏,更清晰

一个示例实现:http://adamyan.blogspot.sg/2010/07/addition-to-aspnet-mvc-localization.html

对于货币,我可能会根据用户的文化来确定它,或者至少将该值用作首次用户的默认值。如果您想让用户能够更改它,我认为 cookie 很好。

【讨论】:

    猜你喜欢
    • 2012-08-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-09
    相关资源
    最近更新 更多