0

我正在尝试在我的 Razor 视图上使用 WebGrid,但收到以下错误消息:

Compiler Error Message: CS1978: Cannot use an expression of type 
'lambda expression' as an argument to a dynamically dispatched operation

这是控制器的代码:

  var query = GetAll().ToList();
  ViewBag.grid = new WebGrid(students, rowsPerPage: 20);
  return View();

风景 :

@{
    var grid = ViewBag.grid;
}
@grid.GetHtml("tblMain",
    columns: grid.Columns(
            grid.Column("Name", format: @<Text>Test</Text>)
        ))

我能够在我的控制器上使用 webgrid 并生成 HTML 并将其呈现在视图中,但是因为我需要模板,所以我尝试在视图而不是控制器中创建 webgrid。我在网上搜索过,同样的示例很少,但我仍然收到此错误。我将不胜感激任何帮助或想法。

4

2 回答 2

1

就像您将 WebGrid 放在 ViewBag 中一样,它变成了一个动态对象,并且不支持表示为 lambda 表达式的委托。如果您不想使用强类型视图,则在 ViewBag 中传递数据,而是在视图中构造网格,或者将网格转换为视图中的正确类型。

于 2012-11-13T16:24:02.630 回答
0

从 ViewBag 转换结果会将网格变量从动态类型更改为正确的类型。然后,您应该能够像以前一样使用它。

@{
    var grid = (WebGrid)ViewBag.grid;
}
@grid.GetHtml("tblMain",
    columns: grid.Columns(
            grid.Column("Name", format: @<Text>Test</Text>)
        ))
于 2013-03-26T16:52:59.407 回答