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
我正在尝试创建一个 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