c# – Linq Lamba在WebForms ASCX中的支持
作者:互联网
在MVC工作了几个月之后,我又回到了之前编写的WebForms 3.5应用程序中,而我正在尝试用我学到的东西来解决问题.
部分内容是“具有部分视图的强类型模型”概念,令人难以置信的非常棒.通过继承我的自定义“ListTemplate”控件,我可以使用它的GetModel()方法得到类似这样的东西:
<% List<Models.CaseStudy> model = GetModel<Models.CaseStudy>(); %>
然后,我可以在模型上运行foreach,一切都很开心.但是,我想进行分组,所以我添加了对以下内容的引用:
<%@ Import Namespace="System.Linq" %>
<%@ Import Namespace="System.Linq.Expressions" %>
然后,使用略低于理想的语法,试过这个:
<% IEnumerable<IGrouping<string, Models.CaseStudy>> model = GetModel<Models.CaseStudy>().GroupBy(e => e.Client.Name); %>
但不是! “编译器错误消息:CS1525:无效的表达式术语’>’” – 它似乎是错误的lambda.如果我将GroupBy()放在foreach参数中,它也不起作用.
有没有办法让lambda在ASCX文件中工作?
解决方法:
基于错误消息,我的第一直觉是说你正在使用C#2.0编译器.
我不确定GetModel< T>的返回类型是什么是.但即使它是一个空方法,实际的lambda表达式也是一个有效的语法结构.它应该产生重载解析错误,而不是解析错误.
但是,在C#2.0编译器中并非如此.它将是一个无效的语法结构,并会产生该错误消息.
您可以检查以确保使用正确版本的C#编译器吗?
标签:c,lambda,linq,webforms,ascx 来源: https://codeday.me/bug/20190522/1151818.html