我最近将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询问此问题。
谢谢!
答案 0 :(得分:1)
在我看来,您正在混合服务器端呈现和Ajax呈现。如果使用网格的服务器端呈现,则应在模型中执行Where(x =&gt; x.Active == true)过滤(最好)或使用此视图的Controller Action(不太理想)。不在视图中。
如果使用Ajax来获取数据,比如对于分页网格,您的数据源需要一个读取方法,如
.Read(read => read.Action("Custodians", "Admin"))