2013-10-21 45 views
0

在我的asp.net应用mvc4我允许管理员更改各种站点范围,如网站的标题,有特色的电影,类别,颜色方案等保存站点级设置

如何保存这些变化?我应该在数据库中创建一行,包括每个设置作为列还是?

如果是这样,每次我想显示该网站,我当然需要该网站的标题 - 然后我必须每次查询数据库检索标题?

+0

您可以使用会话来存储将在所有页面上使用的网站标题和其他数据 –

回答

1

这样做的两种可能方法是在会话中或在数据库中按照您的建议。

Session: 如果此信息不能永久保存,您可以将它存储在服务器端的会话中。根据您设置的策略,用户退出浏览器后信息会消失,这可能不是您想要的。

数据库: 您可以将每个用户(userId,设置)的所有信息存储在单行中。这些设置可以存储为xml等为像这样一个字符串:

<settings> 
    <title>...</title> 
    <featuredmovies> 
     <movie>...</movie> 
    </featuredmovies> 
    ... 
</settings> 

您必须查询数据库,但它是一个非常便宜的查询作为你唯一的选择基于用户ID。您也可以将信息存储在会话中,一次只检索一次,只有在用户更改其设置时更新。这意味着您以后每次需要的设置信息都可以从会话中获得,而不是数据库非常快。

编辑:然后,你会解析XML到你想要的设置服务器端。

+0

好吧谢谢 - 我会这样做:) –