在MVC5中保留DropDownList选择以进行回访

时间:2014-06-20 16:40:36

标签: asp.net asp.net-mvc

我已经阅读了数十篇关于持久保存DropDownList选定值的文章和解决方案。这些文章似乎都没有完全满足我的需求。这是我的要求:

我在_Layout.cshtml(网站范围页面标题)中有一个DropDownList,允许用户选择所需的语言。

<form>
    <select id="lang">
        <option value="en-US" selected="selected">English</option>
        <option value="fr-CA">Fran&#231;ais</option>
        <option value="pt-BR">Portugu&#234;s</option>
        <option value="es-MX">Espa&#241;ol</option>
    </select>
</form>

我的目的是使用Westwind.Globalization包(NuGet)来执行本地化。

默认情况下,该设置应为英语,但是当用户从语言下拉列表中进行选择时,我希望将其选择保留为Cookie,该Cookie不仅用于当前会话,还用于回访。

如果用户已通过身份验证,我还希望将他们的选择保存在我已为其添加了列的用户个人资料中。

如果在更改所需语言时对其进行身份验证,那么为当前会话保留值,返回访问权限以及保存到用户配置文件的最佳做法是什么?

1 个答案:

答案 0 :(得分:0)

如果您网站的用户是匿名用户,您可以使用Cookie来存储语言偏好。

如果您网站的用户不是匿名用户,除了Cookie 之外,您还可以存储用户的语言偏好以及该用户的数据库记录。

我说&#34; 除了cookie之外的原因&#34;如下。假设用户已经在您的网站上拥有一个帐户并定期使用它。他们访问您的网站尚未登录。应该从cookie中提取语言首选项,直到用户登录为止,以便登录页面,登录页面等使用用户的语言。用户登录后,使用从数据库中检索到的用户语言首选项更新cookie。