asp.net mvc中视图上每个用户的不同字段

时间:2013-09-24 05:24:21

标签: asp.net-mvc asp.net-mvc-3 asp.net-mvc-4 razor

我将创建一个每个用户都有自己的规范的应用程序。

假设我有一个包含以下字段的表

数据     ID     名称     日期

现在一个用户说我需要一个description字段,我可以在其中添加我的描述

其他用户来了,说我需要两个新字段IsVerified , IsLocal

现在我的问题是人们如何管理这种应用程序。

在视图方面,我们如何确定应该为当前访问用户呈现哪些字段。

以及如何在数据库中管理相同的方案。

我认为对于数据库端,我们可以将所有可能的字段放在表中,但不知道这个apparoach是好还是

所以,请告诉我如何管理这种类型的应用程序,如果有人提供示例链接,这将非常有帮助。

提前致谢。

2 个答案:

答案 0 :(得分:2)

为用户创建单独的表格&像

这样的字段
Table: User
UserId Name Date

Table: Field
FieldId UserId Name Value

此处字段表包含所有用户字段,我们可以通过UserId获取perticuler用户字段。

这对你有帮助..

答案 1 :(得分:0)

在asp.net设置中,我会使用配置文件提供程序来满足这种需求。 您可以通过继承ProfileBase来实现自己的。

此处的文档和示例(向下滚动): http://msdn.microsoft.com/en-us/library/system.web.profile.profilebase.aspx

根据您的特殊需要,您可以使用Hashtable,甚至是字典,用户可以在任何给定的密钥上存储他/她想要的任何内容。 Hashtables和Dictionaries需要序列化为二进制文件。

[SettingsAllowAnonymous(false), SettingsSerializeAs(SettingsSerializeAs.Binary)]
[ProfileProvider("AspNetSqlProfileProvider")]
public Hashtable Fields
{
get
{
return base["Fields"] as Hashtable;
}
set
{
base["Fields"] = value;
Save();
}
}