我使用Telerik控件继承了一个ASP.Net MVC 3项目。我正在更新所有内容到Kendo UI。当将函数链接到网格(或任何其他)控件时,我所遇到的问题适用于Telerik和Kendo。
在telerik / kendo网站的所有代码示例中,我在声明网格时会看到以下内容:
@(Html.Telerik().Grid<QuotationItemViewModel>()
.Name("quotationProductsGrid")
.DataKeys(keys => keys.Add(p => p.ID))
但是,在我继承的项目中,相同的代码将以这种方式编写:
<%= Html.Telerik().Grid<QuotationItemViewModel>()
.Name("quotationProductsGrid")
.DataKeys(Function(dataKeys) dataKeys.Add(Function(p) p.ID))
当尝试链接其他函数 - 或者仅修改现有函数时 - keys => keys.Add(p => p.ID)
语法抛出'键未声明为'错误。
有人可以解释或提供有关语法差异以及可能使用Function(datakeys) dataKeys.Add(Function(p) p.ID)
的原因的文档吗?是否与代码嵌入页面有关?
答案 0 :(得分:1)
第一个代码是C#(请参阅Lambda Expressions (C#)),而第二个示例是Visual Basic(请参阅Lambda Expressions (Visual Basic))。需要使用正确的编程语言语法,或者如发现的那样,语法错误将会很多。
提供的语法功能上等同,与Telerik / Kendo无关(更少与客户端相关);相反,正确的语法选择直接与用于页面视图的语言(例如C#/ VB.NET)相关联。
页面使用的语言由@Page指令的语言属性控制。