我是Generics的新手,我无法弄清楚为什么以下不起作用。
我有IEnumerable<T>
的扩展名,名为Grid,看起来像是
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=>{
...
});
它声明“无法将方法组'Grid'转换为非委托类型'object'。你打算调用这个方法吗?“,用”@ Model.tasks.Grid“红色加下划线。
有趣的是,视觉工作室编译,一切都很好。当然,如果我只是做@Model.Products.Grid(grid=>{
...
});
一切都很好。
答案 0 :(得分:8)
Razor解析器正在解释&lt;和&gt;作为普通的HTML标签。 您可以避免在括号中包装调用的问题:
@(Model.Products.Grid<Product>(grid=>{
...
}))
您可以在此处找到其他信息:How to use generic syntax inside a Razor view file?