如何将模型中存储的名称和值收集到 C# MVC 中的列表中
本文关键字:MVC 列表 模型 存储 | 更新日期: 2023-09-27 18:31:26
数据作为参数绑定到模型中到我的函数。我需要做的是将模型中属性的名称收集到一个列表中,我已经这样做了。此外,我需要将模型中绑定的值存储到列表中,然后将这些值添加并将其转换为 json,以便我可以轻松地将其加载到网格中。我的问题是我无法在列表中收集模型中绑定的值。
这是我的代码。
public List<string> GetPropertiesNameOfClass(UserModel olduser,UserModel newuser)
{
List<string> propertyNameList = new List<string>();
List<string> propertyOldValue = new List<string>();
List<string> propertyNewValue = new List<string>();
if (olduser != null)
{
foreach (var prop in olduser.GetType().GetProperties())
{
propertyNameList.Add(prop.Name);
// propertyOldValue = prop.GetValue(olduser, null);
//var value = prop.GetValue(this) ;
}
}
if(newuser !=null)
{
foreach(var prp in newuser.GetType().GetProperties())
{
//propertyNewValue = prp.GetValue(this);
}
}
// return propertyList + propertyOldValue + propertyNewValue;
}
我通过以下方式获取属性名称列表 属性名称列表.添加(prop.姓名);但是对于值,我不知道如何在列表中绑定它们。请帮忙。我已经访问了此链接,但无法自行实现。
如何使用泛型列表从通用模型中获取属性名称和值?
好的,
我认为这可能是您要做的,但是如果没有看到您的模型和预期输出正确格式化,就很难知道。
public List<string> GetPropertiesNameOfClass(UserModel olduser, UserModel newuser)
{
var propertyNameList = new List<string>();
var propertyOldValue = new List<object>();
var propertyNewValue = new List<object>();
foreach (var prop in olduser.GetType().GetProperties())
{
propertyNameList.Add(prop.Name);
propertyOldValue.Add(prop.GetValue(olduser, null));
}
if(newuser !=null)
{
foreach(var prp in newuser.GetType().GetProperties())
{
propertyNewValue.Add(prp.GetValue(olduser, null));
}
}
/* Convert To JSON Here */
return formattedJson;
}
当您将项目添加到列表中时,您不能使用 + 操作符,您需要对单个对象使用 Add() 或对对象列表使用 AddRange()。
GetValue 返回了一个对象,所以我更改了要添加到 List 类型的列表。由于某种原因,ToString 无法在 GetValue 返回的对象上运行。
后续步骤的一些指示。
- 将返回类型更改为 JSON
查看使用字典来构建数据。创建一个 Object 类型来同时表示新旧用户可能很有用
public class UserHistory { UserModel oldUser {get; set} UserModel newUser {get; set} }
如果您能提供有关如何构建数据的更多信息,我可以进一步帮助您。