我已经阅读了几十篇关于持久化DropDownList的选定值的文章和解决方案。似乎没有一篇文章确切地解决了我的需求。以下是我的要求:
我在_Layout.cshtml (网站页面标题)中有一个DropDownList,允许用户选择他们想要的语言。
<form>
<select id="lang">
<option value="en-US" selected="selected">English</option>
<option value="fr-CA">Français</option>
<option value="pt-BR">Português</option>
<option value="es-MX">Español</option>
</select>
</form>我的目的是使用Westwind.Globalization包(NuGet)来执行本地化。
如果用户通过了身份验证,我还希望将他们的选择保存在他们的用户配置文件中,我已经为其添加了一列。
保持当前会话、返回访问的值,并在所需语言更改时通过身份验证后保存到用户配置文件的最佳实践是什么?
发布于 2014-06-21 00:43:48
如果您网站的用户是匿名用户,您可以使用cookie来存储语言首选项。
如果您网站的用户不是匿名用户,除了cookie之外,您还可以存储用户的语言首选项以及该用户的数据库记录。
我说“除了cookie之外”的原因如下。假设一个用户已经在你的网站上有一个帐号,并且经常使用它。他们访问您的网站,但尚未登录。语言首选项应该从cookie中提取,直到用户登录,以便登录页面、登录页面等都是用户的语言。用户登录后,使用从数据库中检索到的用户语言首选项更新cookie。
https://stackoverflow.com/questions/24331968
复制相似问题