代码之家  ›  专栏  ›  技术社区  ›  tags2k

WebForms ASCX中的Linq Lamba支持

  •  5
  • tags2k  · 技术社区  · 17 年前

    这其中的一部分是“具有部分视图的强类型模型”概念,这一概念令人难以置信。通过继承我的自定义“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参数中,它也不起作用。

    有没有办法让lambdas在ASCX文件中工作?

    1 回复  |  直到 17 年前
        1
  •  5
  •   JaredPar    17 年前

    根据错误消息,我的第一反应是说您正在使用C#2.0编译器。

    我不确定退货类型是什么 GetModel<T> 是但是,即使它是一个空方法,实际的lambda表达式也是一个有效的语法构造。它应该产生重载解析错误,而不是解析错误。

    然而,在C#2.0编译器中并非如此。这将是一个无效的语法结构,并将产生该错误消息。

    你能检查一下以确保你使用的是正确版本的C#编译器吗?