与Telerik / Kendo函数声明语法混淆

时间:2013-10-23 18:24:28

标签: jquery asp.net-mvc telerik

我使用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)的原因的文档吗?是否与代码嵌入页面有关?

1 个答案:

答案 0 :(得分:1)

第一个代码是C#(请参阅Lambda Expressions (C#)),而第二个示例是Visual Basic(请参阅Lambda Expressions (Visual Basic))。需要使用正确的编程语言语法,或者如发现的那样,语法错误将会很多。

提供的语法功能上等同,与Telerik / Kendo无关(更少与客户端相关);相反,正确的语法选择直接与用于页面视图的语言(例如C#/ VB.NET)相关联。

页面使用的语言由@Page指令的语言属性控制。