7

我是泛型的新手,我不知道为什么以下方法不起作用。

我有一个名为 Grid 的扩展IEnumerable<T>,它看起来像这样

  public static class IEnumberableGridExtension
  {
        public static HelperResult Grid<T>(this IEnumerable<T> gridItems, Action<GridView<T>> thegrid) 
        {
            ........
        }

   }

说,我的剃须刀模型中有一个名为“Products”的变量,它是类型List<Product>,所以我试着做

@Model.Products.Grid<Product>(grid=>{
...
});

它指出“无法将方法组“网格”转换为非委托类型“对象”。您是否打算调用该方法?”,带有红色下划线的“@Model.tasks.Grid”。

有趣的是,Visual Studio 编译,一切都很好。当然,如果我只是这样做

@Model.Products.Grid(grid=>{
...
});

一切都好。

4

1 回答 1

9

Razor 解析器将 < 和 > 解释为普通的 HTML 标记。您可以避免将调用括在括号中的问题:

@(Model.Products.Grid<Product>(grid=>{
...
}))

您可以在此处找到其他信息:如何在 Razor 视图文件中使用通用语法?

于 2013-07-31T03:53:25.950 回答