C# 动态向模型添加列并显示相关字段,以便在视图asp.net mvc enityframework中添加、编辑和删除字段数据?

C# 动态向模型添加列并显示相关字段,以便在视图asp.net mvc enityframework中添加、编辑和删除字段数据?,c#,asp.net-mvc,entity-framework-6,C#,Asp.net Mvc,Entity Framework 6,我想让用户决定他想在object中添加哪个列或字段,并且根据他选择的创建该字段的数据类型,用户应该能够使用他选择的创建该自定义字段的数据类型对该对象执行CRUD操作。有没有可能,如果有,最好的方法是什么?(所有这些操作都要在浏览器中进行,而不是从代码中进行)您不能“动态”为每行的表添加一列。如果用户可以添加一列,那么该列通常会添加到表中,并且该表中的每一行都会有该列。即使这是可能的,也需要授予应用程序对数据库的管理权限,这是一个巨大的安全失误。向web公开的数据库用户应该只有最起码的必要特权:通

我想让用户决定他想在object中添加哪个列或字段,并且根据他选择的创建该字段的数据类型,用户应该能够使用他选择的创建该自定义字段的数据类型对该对象执行CRUD操作。有没有可能,如果有,最好的方法是什么?(所有这些操作都要在浏览器中进行,而不是从代码中进行)

您不能“动态”为每行的表添加一列。如果用户可以添加一列,那么该列通常会添加到表中,并且该表中的每一行都会有该列。即使这是可能的,也需要授予应用程序对数据库的管理权限,这是一个巨大的安全失误。向web公开的数据库用户应该只有最起码的必要特权:通常只是插入、更新、选择和删除,有时甚至不是所有这些特权。任何其他情况都会使您面临SQL注入攻击和类似恶意用户攻击的巨大风险。这是database 101之类的东西,所以在继续之前,您应该退后一步,了解更多关于您正在开发的平台的信息


听起来你基本上只是想要一个类似“设置”表的东西。这些东西通常的工作方式是将“设置”的名称和值存储为字符串。也可以将类型值存储为字符串。然后,在检索设置后,可以强制将值转换为所需的正确类型。这实际上是“动态”的最好方法,因为关系数据库非常静态。它需要事先知道数据和要处理的数据类型。

你应该至少开始编写一行代码,然后寻求帮助以解决可能出现的问题或错误。感谢@reshad的评论,我从不同的网站上获得了很多小示例,但在每一个案例中,他们都说,如果我想添加新的属性/字段,那么就从编程的方式而不是从视图中动态地添加它。我试过几次,并想到了在这个论坛上搜索。但是没有找到,所以我在这里问了…谢谢@Chris Pratt的帮助。我肯定会尝试您的方法,但提供静态列会增加用户的限制,因为他可以向特定对象添加多少列。非常感谢您提供的解决方案。不是列,而是行。您的列将类似于
名称
、和
类型
。然后,每行将分别保存设置的名称、该设置的值和该值的类型。因此,从理论上讲,您可以拥有无限数量的自定义“设置”,因为它们只是额外的行。