嗨,我需要使用 viewbag 显示数据列表。但我无法做到。
请帮我..
我试过这个东西:
ICollection<Learner> list = new HobbyHomeService().FetchLearner();
ICollection<Person> personlist = new HobbyHomeService().FetchPerson(list);
ViewBag.data = personlist;
和内部 View :
<td>@ViewBag.data.First().FirstName</td>
但这并没有显示值并给出错误提示“Model.Person 不包含 First() 的定义”
最佳答案
在您看来,您必须将其转换回原始类型。没有类型转换,它只是一个对象。
<td>@((ViewBag.data as ICollection<Person>).First().FirstName)</td>
ViewBag 是 C# 4 动态类型。除非强制转换,否则从它返回的实体也是动态的。但是,像 .First() 这样的扩展方法和所有其他 Linq 方法 do not work with dynamics .
编辑 - 解决评论:
如果要显示整个列表,就这么简单:
<ul>
@foreach (var person in ViewBag.data)
{
<li>@person.FirstName</li>
}
</ul>
像 .First() 这样的扩展方法不起作用,但这会起作用。
关于asp.net-mvc - 如何使用 ViewBag 显示列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10521831/