如何在 Razor 中使用 Kendo UI?

Posted

技术标签:

【中文标题】如何在 Razor 中使用 Kendo UI?【英文标题】:How can I use Kendo UI with Razor? 【发布时间】:2013-01-06 20:37:05 【问题描述】:

我已经下载并使用了带有 Kendo UI 网格的 Kendo UI,但我的源代码非常复杂,原因如下:

    我已经破解了排序以启用不区分大小写的排序。

    我观察到在过滤器菜单中显示过滤器菜单、页面大小选择器、过滤器功能菜单和 DatePicker 时出现 UI 错误;我已经用丑陋的 hack 解决了这些问题。

    在客户端,我在需要时使用参数化帖子刷新了网格。

    在服务器端,我创建了一个动态处理网格的排序、过滤、页面大小和分页状态的函数。

但是,我的客户告诉我,我们需要一个“简单”的解决方案,一个网格页面应该在一个小时内完成。我认为这对我目前的方法是不现实的,除非我实现一个通用类来处理网格。这可以使用 Linq 来处理表、字段、过滤器、排序、分页和页面大小。我肯定知道这一点,因为我的代码离成为服务器端的通用网格支持者和客户端的 Kendo UI 网格工厂还差得很远。但是,我的客户明确表示我们不需要实现这个类和原型,因为我们应该能够简单地配置 Kendo UI。他告诉我(之前未指定的细节),我们可以从表中返回所有行并在客户端对其进行过滤/排序,因此第 3 点和第 4 点将变得不需要。

我一直在查看示例 here。我想要与cshtml中的示例类似的东西。但是,在我下载的 Telerik Kendo UI 中,我没有任何服务器端内容,因此 IDE 显示 Html.Kendo().Grid(Model) 不正确。错误如下:

错误 10“System.Web.Mvc.HtmlHelper”不包含“Kendo”的定义,并且找不到接受“System.Web.Mvc.HtmlHelper”类型的第一个参数的扩展方法“Kendo”(是您缺少 using 指令或程序集引用?)

我正在使用带有 Linq 的 ASP.NET MVC3。

如何以链接中 cshtml 文件中描述的样式将 Telerik Kendo UI 与 ASP.NET Razor 一起使用?这是免费的吗?如果没有,费用是多少?我应该安装 KendoUI.Mvc.VSPackage.vsix 吗?

【问题讨论】:

不,用于 MVC 的 Kendo 不是“免费的”。你有什么版本? 【参考方案1】:

为了使用额外的助手,你需要将它们注册到 Razor 视图引擎。这是在 web.config 文件中完成的,或者在 .cshtml 文件顶部使用 @using 语句。

这是我web.config的一个例子

  <system.web.webPages.razor>
    <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <pages pageBaseType="System.Web.Mvc.WebViewPage">
      <namespaces>
        <add namespace="System.Web.Mvc" />
        <add namespace="System.Web.Mvc.Ajax" />
        <add namespace="System.Web.Mvc.Html" />
        <add namespace="System.Web.Optimization"/>
        <add namespace="System.Web.Routing" />
        <add namespace="Kendo.Mvc.UI"/>
      </namespaces>
    </pages>
  </system.web.webPages.razor>

就许可而言,这不是免费软件。您可以在their website 上查看许可条款和价格。根据他们的许可证,每个使用 Telerik 控件的开发人员都需要拥有许可证。许可不是公司范围的,也不是项目范围的。

您不需要安装 vsix,但它可以通过自动添加对所需程序集的引用以及将所需条目添加到 web.config 文件来让您的生活更轻松。

【讨论】:

感谢您的回答。我需要下载一些东西吗? 这是我得到的错误:c:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root\2eb65780\a625994f\App_Web_error500.cshtml.62599428.kfutdc2x。 0.cs(27):错误 CS0246:找不到类型或命名空间名称“Kendo”(您是否缺少 using 指令或程序集引用?) 您需要有 Kendo 程序集和脚本。如果您没有它们(如果您从新项目开始并且没有安装 Kendo),那么您需要下载 Kendo 并安装它。 在这种情况下,您没有 Kendo 程序集。下载并安装它们。有可用的试用版,或者如果您正在开发具有 GPLv3 许可证的软件(可能没有),您可以获得免费许可证。 感谢您的回答。【参考方案2】:

此外,如果您使用 MVC 5,您可能希望添加对 Kendo UI 的引用。您可以通过转到项目中的引用,右键单击并添加引用来完成此操作。如果未列出,请单击浏览,然后浏览到项目中的 lib 文件夹,然后单击 Kendo.Mvc.dll 然后添加。希望这可以帮助某人。

【讨论】:

以上是关于如何在 Razor 中使用 Kendo UI?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Kendo UI 中使用双列表框

Kendo UI 参考在 Razor 视图中不起作用

如何在 Kendo UI 菜单上的多个组之间插入分隔条

如何有条件地格式化 Kendo UI 网格单元格(取决于值)剃刀

在剑道模板(Razor)中渲染剑道控制

如何在 kendo ui 网格中选择关键行