我在Asp.Net的ViewController中有这个列表。
var Line1 = Skills.GroupBy(x => x.Line1).ToList();
这段代码给了我这个结果:
[0] -> Key | "Software"
[1] -> Key | "Consulting"
[2] -> Key | "Hardware"
当我尝试在我的视图中访问此代码时,它不起作用。
@foreach (var item in ViewBag.Line1)
{
var test = item.Key;
}
它说“密钥未定义”。那是为什么?
PS:我将列表保存到控制器的ViewBag.Line1中。
这是在控制器中。如果我输入Line1[0].Key
,它会给我“软件”。
但如果我输入item.Key,它会给我上面提到的错误。
答案 0 :(得分:0)
您可以创建 ViewModel 来解决此问题。
只需创建一个包含Line1属性的类
public class MyViewModel
{
public List<IGrouping<string,Skill>> Line1{ get; set; }
}
然后创建一个强类型视图,其中MyViewModel
为模型。您可以通过在View文件的顶部添加它来执行此操作:
@model {YourModelNameSpace}.MyViewModel
然后通过ViewModel将数据从控制器传递到视图,如下所示:
var myVm = new MyViewModel();
myVm.Line1 = Skills.GroupBy(x => x.Line1).ToList();
return View("YourViewName",myVm);
希望这有帮助!