C# 如何在MVC数据模型中动态循环字段名?

C# 如何在MVC数据模型中动态循环字段名?,c#,.net,asp.net-mvc,C#,.net,Asp.net Mvc,在我的数据库结构中,我有一个特定用户的字段数组。像 用户:选择1、选择2、选择3、选择4等。 将视图发布到控制器时,将进入这些字段的值将从动态构造的一组隐藏输入以字符串数组(MyChoices[])的形式传递 我的好主意是使用for循环遍历数组并赋值。比如说: for (int x = 0; x < MyChoices.Count(); x++ { model.Choice[x + 1] = MyChoices[x]; } 如果您不知道要提交哪些字段或属性,那么应该使用反射 样本:

在我的数据库结构中,我有一个特定用户的字段数组。像

用户:选择1、选择2、选择3、选择4等。

将视图发布到控制器时,将进入这些字段的值将从动态构造的一组隐藏输入以字符串数组(
MyChoices[]
)的形式传递

我的好主意是使用
for
循环遍历数组并赋值。比如说:

for (int x = 0; x < MyChoices.Count(); x++ {
  model.Choice[x + 1] = MyChoices[x];
}

如果您不知道要提交哪些字段或属性,那么应该使用反射

样本:

            FieldInfo[] myField = myType.GetFields();

            for(int i = 0; i < myField.Length; i++)
            {                  
                    Console.WriteLine(myField[i].Name);
            }
FieldInfo[]myField=myType.GetFields();
for(int i=0;i
如果您想动态或在运行时获取属性名称,您应该使用,甚至可以获取或设置它们的值。好的,我是这样做的:

首先,向哈尔福德致敬。。。我的意思是,索拉林,因为他几乎把我引向了正确的方向。基本上,我能够通过以下方式完成我的任务:

for (int x = 0; x < MyChoices.Count(); x++)
{
    td.GetType().GetProperties().Single(p => p.Name == "Choice" + (x + 1)).SetValue(td, MyChoices[x]);
}
for(int x=0;xp.Name==“Choice”+(x+1)).SetValue(td,MyChoices[x]);
}

我的最终解决方案似乎有点笨拙和不自然。因此,如果有人有什么好主意,我洗耳恭听。

请向我们展示我极力推荐的包含选择内容的课程,以使用
列表选择
。因此,您可以在该列表上迭代这些arnt字段,它们是属性。在文档中有一个GetProperties()方法also@lokusking-我的问题不是遍历实际值,而是遍历字段。。。呃,“属性”。我的很大一部分人仍然认为我只需要修改我的数据,使其不是表格。谢谢。我来看看。你不是在开玩笑吧。。。实际上,你必须使用反射!哈哈,明白了吗<代码>使用系统反射。。。好的,对不起。糟糕的编程笑话。
for (int x = 0; x < MyChoices.Count(); x++)
{
    td.GetType().GetProperties().Single(p => p.Name == "Choice" + (x + 1)).SetValue(td, MyChoices[x]);
}