我试图在ViewBag var中传递一个模型集合,然后在视图包中过滤它,但是我收到了错误。
“不能将lambda表达式用作动态调度操作的参数,而不先将其转换为委托或表达式树类型”
在控制器中我有下一个代码
List<PersonalModel> Personal = new List<PersonalModel>();
Personal = db.Personal.ToList();
ViewBag.Personal = Personal;
在我看来,我想做这样的事情
@{
var personal = ViewBag.Personal;
personal=personal.Where(s => s.ID == @Html.DisplayFor(modelItem => item.ID) ).FirstOrDefault();
@personal.FullName
}
我想使用我在视图模型中加载的id,在模型中只显示FullName,但不起作用。有什么建议吗?谢谢。
答案 0 :(得分:0)
刚刚确认,当您在视图侧抓住动态时施放动态,您应该能够按预期使用它:
List<someObject> someSet = new List<someObject>();
dynamic dynamicSet = someSet;
// this will error because you cant perform lambda expressions on a dynamic
dynamicSet.Select(a => a.se == false);
// this will work because it is now casted into the structure you want and can work with
var newSet = (List<string>)dynamicSet;
newSet.Select(a => a.se == false);
答案 1 :(得分:0)
这不是一个很好的代码..你不应该将你的逻辑放入视图