Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ViewBag中的动态列名或asp net mvc中的ViewData_C#_Asp.net_Asp.net Mvc_Viewbag_Viewdata - Fatal编程技术网

C# ViewBag中的动态列名或asp net mvc中的ViewData

C# ViewBag中的动态列名或asp net mvc中的ViewData,c#,asp.net,asp.net-mvc,viewbag,viewdata,C#,Asp.net,Asp.net Mvc,Viewbag,Viewdata,我想在集合中动态写入列名。我的收藏在ViewBag和ViewData中 我正在努力 @{foreach (var item in ViewData["example"] as List<exampleList> ) { <h1>@item["column" + column_id]</h1> @{foreach(ViewData[“示例”]中的变量

我想在集合中动态写入列名。我的收藏在ViewBag和ViewData中

我正在努力

@{foreach (var item in ViewData["example"] as List<exampleList> )
                            {
                            <h1>@item["column" + column_id]</h1>
@{foreach(ViewData[“示例”]中的变量项作为列表)
{
@项目[“列”+列id]
上述代码中的项[给出了错误

我也试过了

@{foreach (var item in ViewBag.example )
                            {
                            <h1>@item.(column + column_id)</h1>
@{foreach(ViewBag.example中的变量项)
{
@项目(列+列id)
也不起作用

我只想在h1中自己写列名。我不想让intellisense为我选择。我的表中每个列的末尾都有语言后缀

例如,名称\u fr、名称\u de、名称\u en

我只想把文化代码带到那里。例如:名称+文化代码

如果我输入@item.name\u fr,它会工作。但我想动态地将“fr”放在那里

exampleList只是一个由Ado.net实体数据模型创建的类。该类没有问题。它是一个简单的类,没有任何数据注释

错误为“无法将[]索引应用于类型为的表达式”


我的错误可能是什么?我试图得到的是可能的还是不可能的?

你不能这样做,如果你真的想通过使用属性名作为字符串来加载对象的某些属性,你需要使用反射

但我建议不要这样做,使用反射在视图线程中获取属性值可能会对性能造成很大影响

更好的方法是使用
字典
实现此目的。在那里,您可以使用字符串存储值并获取它

演示

Dictionary<string,object> d = new Dictionary<string,object>();
d.Add("name_fr",name_fr) ;
d.Add("name_de",name_de) ;
d.Add("name_en",name_en) ;
Dictionary d=newdictionary();
d、 添加(“姓名”,姓名);
d、 添加(“名称”,名称);
d、 添加(“名称”,名称);
鉴于:

<h1>@item.YourDictionaryProperty[column +"_"+ column_id]</h1>
@item.YourDictionaryProperty[列+“\u”+列\u id]

希望它有意义。

写列名是什么意思?你的
示例列表是什么模型?你想输出什么?什么是
示例列表
?我想它是一个类,你能发布它的定义吗?它能像
[“column”+column\u id]那样处理索引吗
?是的,谢谢大家。我通过编辑我的问题添加了你们的答案。谢谢你们的建议,但是在哪里初始化那个字典?我试图在类的构造函数中初始化,它不起作用。我试图在类的Dictionary属性中初始化,它给出了错误:字段初始化器不能引用非静态的fiedl method或property…可以在构造函数内实例化字典,并且可以在运行时添加值。