Grid.Mvc.Ajax初始化问题

Grid.Mvc.Ajax初始化问题,ajax,asp.net-mvc,vb.net,linq,Ajax,Asp.net Mvc,Vb.net,Linq,我试图在Mvc项目中运行Grid.Mvc.Ajax,但是文档非常差。目前有两个问题-第一个问题与索引操作结果有关。我尝试了多种方法来定义一个新的网格,但它总是抛出“IQueryable(of DateGridModels)”是一种接口类型,不能用作表达式 我尝试过的例子 Dim vGrid = CType(New Grid.Mvc.Ajax.GridExtensions.AjaxGridFactory().CreateAjaxGrid(IQueryable(Of DateGridModels),

我试图在Mvc项目中运行Grid.Mvc.Ajax,但是文档非常差。目前有两个问题-第一个问题与索引操作结果有关。我尝试了多种方法来定义一个新的网格,但它总是抛出“IQueryable(of DateGridModels)”是一种接口类型,不能用作表达式

我尝试过的例子

Dim vGrid = CType(New Grid.Mvc.Ajax.GridExtensions.AjaxGridFactory().CreateAjaxGrid(IQueryable(Of DateGridModels), 1, False, 5), Grid.Mvc.Ajax.GridExtensions.AjaxGrid(Of DateGridModels))

Dim vGrid2 = CType(New AjaxGridFactory().CreateAjaxGrid(Of DateGridModels)(IQueryable(Of DateGridModels), 1, False, 5), AjaxGrid(Of DateGridModels))

另一个问题与网格没有直接关系,但更一般的MVC是

 @code
   @Html.RenderPartial("_DataGrid", Model)
 End Code
返回“表达式不生成值”

========================================编辑========================

回应评论中的标记C

部分

@Imports GridMvc.Html
@Imports GridMvc.Sorting
@ModelType Grid.Mvc.Ajax.GridExtensions.AjaxGrid(Of DateGridModels)
Public Class MainModels
  Public Property CalendarM() As CalendarModels
  Public Property GridM() As List(Of MaintGrid)
End Class
Public Class DateGridModels
  Public Property FirstName() As String
  Public Property LastName() As String
End Class
查看

@ModelType MainModels
主要型号

@Imports GridMvc.Html
@Imports GridMvc.Sorting
@ModelType Grid.Mvc.Ajax.GridExtensions.AjaxGrid(Of DateGridModels)
Public Class MainModels
  Public Property CalendarM() As CalendarModels
  Public Property GridM() As List(Of MaintGrid)
End Class
Public Class DateGridModels
  Public Property FirstName() As String
  Public Property LastName() As String
End Class
网格模型

@Imports GridMvc.Html
@Imports GridMvc.Sorting
@ModelType Grid.Mvc.Ajax.GridExtensions.AjaxGrid(Of DateGridModels)
Public Class MainModels
  Public Property CalendarM() As CalendarModels
  Public Property GridM() As List(Of MaintGrid)
End Class
Public Class DateGridModels
  Public Property FirstName() As String
  Public Property LastName() As String
End Class

我将完全按照文档中指定的方式实例化网格,如:

Dim vm = New List(Of DateGridModels)() From { _
    New DateGridModels() With { _
        Key .FirstName = "John", _
        Key .LastName = "Doe" _
    } _
}.AsQueryable()
Dim ajaxGridFactory = New Grid.Mvc.Ajax.GridExtensions.AjaxGridFactory()
Dim grid = ajaxGridFactory.CreateAjaxGrid(vm, 1, False)

看起来不需要实现列表
AsQueryable()
,可能是因为他们正在网格中执行一些
linq
语句。

如果将
IQueryable
更改为
Queryable
,“Queryable”没有类型参数,因此不能有类型参数。。。感谢您的回复,这篇文章让我抓狂。在文档中,它使用
List
的具体实现来初始化
CreateAjaxGrid
,而不是一个接口。为什么不使用
列表
?编辑:对不起,刚才注意到这是VB的,不是C的。只需实现一个新的
DateGridModels
尝试列表,就得到了以下错误-System.InvalidCastException:无法将类型为'System.Collections.Generic.List
1[MaintenanceWeb.DateGridModels]'的对象强制转换为'System.Linq.IQueryable
1[MaintenanceWeb.DateGridModels]’。因此,我认为您可能需要将IQueryable的每个实例都更改为列表(在您的视图中,等等),除非您可以使用.AsQueryable()的静态方法选项。如果我删除原始模型类型,它就可以工作,尽管排序似乎像Grid.Mvc一样回发,但可能我还没有为此实现脚本。主要的问题是,我有许多其他控件使用不同的模型,但它在Html.RenderPartial(“_DataGrid”,Model.DateM)”中崩溃了。。。谢谢你的耐心:-)我不知道你的问题是什么。您在哪里删除ModelType并且它正在工作?最初ModelType被设置为MainModels,这反过来又指向其他模型-因此在控件中它们被设置为Model.Model1、Model.Model2等等-我将网格设置为Model.DateM(DateGridModels),当它刚刚拾取MainModels时它爆炸了。。。ModelType在主视图中被更改以使其工作Yes和no-可以使其加载,但是同一视图上的其余控件都没有用:-(最后我不得不采用一种稍微不同的方法,因为我需要一种方法使所有其他控件也能工作,但已将此标记为答案并投票通过-谢谢您的帮助:-)