在ASP.NET Core MVC中发布网站后动态更改模型和控制器

时间:2018-10-05 21:22:47

标签: asp.net-mvc asp.net-core asp.net-core-mvc

我正在使用ASP.NET Core MVC2。我需要操作员可以更改模型的某些元素或查看代码。我该如何编码或设计。

例如:我有一个“新闻”模型,并且我希望操作员(网站的最终用户,不能编写代码或无法访问Visual Studio)可以将其添加到“新闻”模型中:

public string ImageUrl { get; set; }

,并且无需更改即可更改数据库。

谢谢

2 个答案:

答案 0 :(得分:1)

如果要设计一个完全可扩展的模型,则可以使用一种称为实体-属性-值模型(EAV)的模型。

您的模型可能具有几个常见的属性,例如标题和摘要。然后,您可能会有一个“自定义字段”列表,其中第一个可以是ImageUrl。您可以创建自己的名为CustomField或类似名称的类,该类具有诸如FieldName和DataType之类的属性。

public string Title { get; set; }
public string Summary { get; set; }
public List<CustomField> CustomFields { get; set; }

然后,您将获得一个充满自定义字段值的表以及它们所属的表。它变得非常复杂。

答案 1 :(得分:0)

要自动将模型更改反映到数据库中时,将需要一个ORM框架,例如EF(实体框架)。您可以查看更多here

为了使您的情况发生,请构建您自己的配置平台,该平台可以使用多种工具和机制,使您可以生成代码然后进行编译。例如T4等。

通常,这是一项非常艰巨的任务,即使是经验丰富的大型团队也很难建立类似的东西。

我无法发布任何代码,因为这似乎是一种绝望的方法。