Kendo UI 引用在 Razor 视图中不起作用

Kendo UI reference not working in Razor view

我正在尝试创建一个 Telerik 网格视图,但是当我去参考时 kendo 它无法识别它。当我尝试引用 kendo 时,Visual Studio 给我一个错误。这是代码 @(Html.Kendo().Grid),下面是错误。

'System.Web.Mvc.HtmlHelper<dynamic>' does not contain a definition for 'Kendo' and no extension method 'Kendo' accepting a first argument of type 'System.Web.Mvc.HtmlHelper<dynamic>' could be found (are you missing a using directive or an assembly reference?)

我在 BundleConfig 文件中为脚本和内容添加了一个包。我还直接将 @Scripts.Render("~/bundles/kendo")@Styles.Render("/Content/kendo") 添加到剃须刀视图。

我读过的许多文章都建议将 <add namespace="Kendo.Mvc.UI"/> 添加到 Web.Config 文件中会起作用,但它仍然会抛出相同的错误。

有什么我想念的吗?

问题是您没有包含对 Kendo.Mvc.dll 的引用。在位于 here

的文档中有关于如何执行此操作的解释

默认情况下,根 kendo 目录安装在 C:\Program Files (x86)\Telerik

我遇到了同样的问题。下面提到的第三点解决了我的问题。

1.包括 JavaScript 和 CSS 文件: 脚本和 css 文件的顺序也很重要。 jQuery 应该包含在 KendoUI 脚本文件之前。

2。添加对 Kendo.Mvc.dll 的引用: 右键单击解决方案资源管理器中的引用节点,然后单击添加引用。 Select“添加引用”对话框的“浏览”选项卡并导航到 ASP.NET MVC 的 Telerik UI 安装位置。

3。更新 Views 文件夹中的 web.config: 打开 Views/Web.config(如果使用 ASPX,则打开 root Web.config)。 找到名称空间标记。 将下面的添加标记附加到命名空间标记。

<add namespace="Kendo.Mvc.UI" />

创建项目时,您必须选择正确的项目类型。有 Telerik asp.net MVC 应用程序 项目类型和 Kendo UI Asp.net MVC 5 项目类型。选择 Kendo UI 项目类型将为您提供 javascript kendo classes。这是为了当你想使用 Kendo 到 javascript 时,我遇到了同样的问题,直到我回去选择了正确的项目类型。我花了一天半的时间尝试添加 .net class 库,因为我的剃刀无法使用。我认为 Visual studio 只是对我正在尝试做的事情感到困惑,我可能缺少一个 .net class 库。

关于将 Kendo 添加到现有 ASP 核心应用程序中,我确实发现将 css 和 javascript (js) 文件引用添加到我的 _Layout.cshtml <head><environment> 标签之前以外的任何地方都导致了问题。我最终通过添加以下内容使它起作用:

<link href="https://kendo.cdn.telerik.com/2017.2.621/styles/kendo.common-material.min.css" rel="stylesheet" type="text/css" />
<link href="https://kendo.cdn.telerik.com/2017.2.621/styles/kendo.mobile.all.min.css" rel="stylesheet" type="text/css" />
<link href="https://kendo.cdn.telerik.com/2017.2.621/styles/kendo.material.min.css" rel="stylesheet" type="text/css" />

<script src="https://kendo.cdn.telerik.com/2017.2.621/js/jquery.min.js"></script>
<script src="https://kendo.cdn.telerik.com/2017.2.621/js/jszip.min.js"></script>
<script src="https://kendo.cdn.telerik.com/2017.2.621/js/kendo.all.min.js"></script>
<script src="https://kendo.cdn.telerik.com/2017.2.621/js/kendo.aspnetmvc.min.js"></script>

我刚刚在剃须刀页面中添加了以下行。它对我有用。

@使用 Kendo.Mvc.UI;

第一步: 添加 Kendo.Mvc.dll 到引用。 您可以使用以下 NuGet 库命令。

Install-Package Kendo.Mvc -Version {yourversion}

第二步: 添加Kendo

的js和css文件
<link href="@Url.Content("~/Content/kendo/2017.3.1018/kendo.common.min.css")" rel="stylesheet" type="text/css" />

<link href="@Url.Content("~/Content/kendo/2017.3.1018/kendo.mobile.all.min.css")" rel="stylesheet" type="text/css" />

<link href="@Url.Content("~/Content/kendo/2017.3.1018/kendo.dataviz.min.css")" rel="stylesheet" type="text/css" />

<link href="@Url.Content("~/Content/kendo/2017.3.1018/kendo.default.min.css")" rel="stylesheet" type="text/css" />

<link href="@Url.Content("~/Content/kendo/2017.3.1018/kendo.dataviz.default.min.css")" rel="stylesheet" type="text/css" />

<script src="@Url.Content("~/Scripts/kendo/2017.3.1018/jquery.min.js")"></script>

<script src="@Url.Content("~/Scripts/kendo/2017.3.1018/jszip.min.js")"></script>

<script src="@Url.Content("~/Scripts/kendo/2017.3.1018/kendo.all.min.js")"></script>

<script src="@Url.Content("~/Scripts/kendo/2017.3.1018/kendo.aspnetmvc.min.js")"></script>

<script src="@Url.Content("~/Scripts/kendo.modernizr.custom.js")"></script>

第 3 步: 在 web.config 文件中添加 Kendo.Mvc.UI 命名空间。

注意:如果在项目中使用区域,您应该将此代码添加到区域的web.config。

<system.web>
    <pages>
        <namespaces>
            <add namespace="Kendo.Mvc.UI" />
        </namespaces>
    </pages>
</system.web>

但是,我遇到了同样的问题,但经过以下步骤后解决了:

1- 打开工具 ==> 扩展和更新
2- 点击左侧的 "Online" 选项卡并搜索 telerik
3- 下载并安装 "Telerik ASP.NET AJAX VSExtensions" & "Telerik ASP.NET MVC VSExtensions"
4- 关闭 Window
5- 转到 "Telerik" 选项卡
6- 点击 "Telerik UI for ASP.NET MVC"
7- 升级向导和升级

这解决了两个站点之间Telerik 版本冲突的问题。如果你在为 Telerik 安装 VS 后,kendo 将不包含在项目中。

AddKendo.Mvc.dll 通过 NugetPackage 和 添加 Kendo.Mvc

Add Namespace in webconfig file

<system.web>
<pages>
    <namespaces>
        <add namespace="Kendo.Mvc.UI" />
    </namespaces>
</pages>

对我来说,_ViewImports.cshtml 我需要编辑

@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
@addTagHelper *, Kendo.Mvc
@using Kendo.Mvc.UI

现在使用 asp.net 核心 2.2,razor 页面正在解析 @(Html.Kendo()...

对于那些仍然面临相同问题的人,以下 link 是针对最新版本 ASP MVC

的更新博客

Using Telerik in an Existing ASP MVC Project

对于 ASP MVC 4 Click here