asp.net MVC - 将字段动态添加到 C# 类,并在 MVC 剃刀中用作模型

本文关键字:MVC 剃刀 并在 模型 net 字段 动态 asp 添加 | 更新日期: 2023-09-27 17:56:03

我有一个名为Agent的类:

public class Agent
{
    public string Measure { get; set; }
}

我有一个数据表,其列是动态的(除了"度量"列外,每次都与数据库不同)

例如:

Measure    |     Dexter     |     Jordon     |     Ana     |     Polark     |
Login hour        8.7              5.5             7.5            4.8

10 秒后,数据表将具有:

Measure    |     Robert     |      Leo       |    Black    |     Operah     |
Login hour        9.6              5.5             4.3            4.8

创建数据表时。我想每次在"运行时"向类"代理"添加动态属性。它应该变成:

public class Agent
{
    public string Measure { get; set; }
    public string Dexter { get; set; }
    public string Jordon { get; set; }
    public string Ana { get; set; }
    public string Polark { get; set; }
}

创建后,我想将类"代理"作为其模型提供给 MVC 视图。我怎么能做到这一点。

注意:我是初学者,所以请帮助我。我在任何地方都找不到解决方案。

asp.net MVC - 将字段动态添加到 C# 类,并在 MVC 剃刀中用作模型

我不认为你可以以这种方式动态添加东西,但也许你可以使用字典来代替:

public class Agent
{
    public string Measure { get; set; }
    public Dictionary<string, string> Scores {get; set;}    
}

然后,您可以添加并从中获取内容,例如:

instanceOfAgent.Scores.Add("Rob", "9.6");
instanceOfAgent.Scores.Add("John", "4.8");
...
var johnsScore = instanceOfAgent.Scores["John"]; // will return "4.8"

这不是解决问题的好方法。

您的 Agent 类应该有一个名为 Name 的字符串属性,用于保存代理的名称(例如"Dexter"、"Jordon"等)如果 Measure 属性包含"登录/小时"之类的值,则可能需要包含"9.6"、"5.5"等值的 Value 属性。

然后,一个代理

对象保存一个代理的名称、度量和值。

然后,将使用数据库中的代理记录填充代理数据表。