C#泛型,我做错了什么?

标签 c# razor

我是泛型的一些新手,我无法弄清楚为什么以下内容不起作用。

我有 IEnumerable<T> 的分机, 称为 Grid,它看起来像这样

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

   }

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

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

它声明“无法将方法组‘Grid’转换为非委托(delegate)类型‘object’。您打算调用该方法吗?”,“@Model.tasks.Grid”带有红色下划线。

有趣的是,visual studio编译,一切正常。当然,如果我只是这样做

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

一切都很好。

最佳答案

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

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

您可以在此处找到更多信息:How to use generic syntax inside a Razor view file?

关于C#泛型,我做错了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17961005/

相关文章:

c# - 如何禁用 Windows 平板电脑内置的网络摄像头

c# - 无法将类型 'void' 隐式转换为 System.Action<int>

razor - 从 asp.net core 中的中间件返回现有的 Razor View

c# - 用户 IsInRole 仅在从网站登录和注销后才有效

c# - 简化循环获取类的属性

c# - 使用 c# 和 Process.Start 打开默认浏览器窗口

html - 带有特殊字符的文件名

asp.net - Razor 显示模板未通过 XHTML 1.0 Transitional 验证

html - 如何使表格边框在新 ASP.Net MVC 3 应用程序的标题部分不可见?

c# - Form1 的类型初始值设定项抛出异常