我是一个对泛型不太熟悉的人,我搞不明白为什么下面的代码不起作用。
我有一个扩展名叫做Grid的,它看起来像这样:
public static class IEnumberableGridExtension
{
public static HelperResult Grid<T>(this IEnumerable<T> gridItems, Action<GridView<T>> thegrid)
{
........
}
}
假设我在Razor Model中有一个变量名为“Products”,它是类型为List<Product>
的列表,那么我尝试这样做:
@Model.Products.Grid<Product>(grid=>{
...
});
这里的错误提示是“无法将方法组 'Grid' 转换为非委托类型 'object'。您打算调用该方法吗?”,同时“@Model.tasks.Grid”被标为红色下划线。
有趣的是,Visual Studio 编译时一切都很正常。当然,如果我只是简单地执行
@Model.Products.Grid(grid=>{
...
});
一切都好。