以下方法之间的调用是模糊的 - Kendo UI

时间:2014-09-15 22:07:38

标签: asp.net-mvc kendo-ui telerik system.web

我最近将Telerik Mvc的Web应用程序迁移到了Kendo UI, 但我遇到了一个障碍,因为我不太确定如何修改 过去一周,我一直在学习更多关于和习惯Kendo UI的知识。

这是我遇到的问题。错误说明:

 The call is ambiguous between the following methods or 
 properties: 'System.Linq.Enumerable.Where<Model_OpenAccess_AssetMgr.Custody>
 (System.Collections.Generic.IEnumerable<Model_OpenAccess_AssetMgr.Custody>, 
 System.Func<Model_OpenAccess_AssetMgr.Custody,bool>)' 
 and 'System.Linq.Enumerable.Where<Model_OpenAccess_AssetMgr.Custody>
 (System.Collections.Generic.IEnumerable<Model_OpenAccess_AssetMgr.Custody>, 
 System.Func<Model_OpenAccess_AssetMgr.Custody,bool>)'

发生错误的代码如下:

@model List<Model_OpenAccess_AssetMgr.Custody>

<div id="AssetDescription" class="detailContainer detailContainer3">
<header class="sectionheader" >  Custodians </header>
@(Html.Kendo().Grid(Model.Where(x=>x.Active==true))
        .Name("grd_Admin_Custodians")
        .HtmlAttributes(new { @class = "ItemsGrid" })
        .ToolBar(commands => commands.Create())
        .DataSource(dataSource => dataSource
            .Ajax()
            .Model(model => model.Id(o => o.Custody_PK))
        )
        .DataSource(dataSource => dataSource
             .Server()
             .Read(read => read.Action("AdminHome", "Admin", new { view ="Custodies" }))
             .Create("Create", "Admin", new { id = 0, view = "Custodies" })
             .Update("Save", "Admin", new { view = "Custodies" })
             .Destroy("Delete", "Admin", new { view = "Custodies" }))
        .Columns(columns =>
                {
                    columns.Bound(o => o.Custody_Name).Width(200);
                    columns.Bound(o => o.Custody_Dept).Width(150);
                    columns.Bound(o => o.Custody_eraider).Width(130);
                    columns.Bound(o => o.Custody_Type).Width(130);
                    columns.Bound(o => o.Custody_Email).Width(220);
                    {
                        commands.Edit();
                        commands.Destroy();
                    }).Width(210);
                }
       )
       .Scrollable(scrolling => scrolling.Enabled(true)}
       .Scrollable(scrolling => scrolling.Height(550))
       .Pageable()
       .Sortable()
    )
</div>
)

(Model.Where(x =&gt; x.Active == true)是被标记的内容。

现在,我也在

下方的顶部列出了警告

@model列表:

ASP.NET runtime error: Method not found 'Void  
System.Web.Razor.RazorEngineHost.set_EnableInstrumentation(Boolean)'

我非常肯定与我得到的错误相关联。

我是否需要以某种方式修改Model.Where()语句?

您认为我应该使用什么代替Kendo UI?

另一方面,我最近将此Web应用程序项目从MVC3升级到MVC4 所以我不知道这是否与此有关。但我想继续前进 并让你知道这个事实。

我已经查看了其他回复,但似乎没有人专门针对Kendo UI询问此问题。

谢谢!

1 个答案:

答案 0 :(得分:1)

在我看来,您正在混合服务器端呈现和Ajax呈现。如果使用网格的服务器端呈现,则应在模型中执行Where(x =&gt; x.Active == true)过滤(最好)或使用此视图的Controller Action(不太理想)。不在视图中。

如果使用Ajax来获取数据,比如对于分页网格,您的数据源需要一个读取方法,如

 .Read(read => read.Action("Custodians", "Admin"))