Kendo UI 参考在 Razor 视图中不起作用
Posted
技术标签:
【中文标题】Kendo UI 参考在 Razor 视图中不起作用【英文标题】:Kendo UI reference not working in Razor view 【发布时间】:2015-06-13 18:21:37 【问题描述】:我正在尝试创建 Telerik Grid 视图,但是当我参考剑道时它无法识别它。当我尝试引用剑道时,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 文件中会起作用,但它仍然会抛出相同的错误。
有什么我遗漏的吗?
【问题讨论】:
@(Html.Kendo().Grid)
是视图中唯一的代码行吗?此外,听起来它可能找不到 Kendo 扩展。您是否在项目中包含了对 .dll 的引用?
@RandomWebGuy 不,我也有 Scripts.Render 和 Styles.Render 在那里。我试过了,但我不知道在哪里可以找到它。我将如何在我的项目中包含 .dll?
您使用的是哪个版本的 MVC?您是否查看过此文档:docs.telerik.com/kendo-ui/aspnet-mvc/asp-net-mvc-5(适用于您的 MVC 版本)?它包括一个关于包含 .dll 的部分
@RandomWebGuy 我正在单击参考管理器中的两个浏览按钮。当我单击窗口底部的 Browse... 按钮并打开解决方案资源管理器时,我不知道如何导航到 wrappers/aspnetmvc/Binaries/MVC5
文档说默认根目录是:C:\Program Files (x86)\Telerik
尝试在那里寻找 wrappers 文件夹并向下钻取直到找到 .dll
【参考方案1】:
我遇到了同样的问题。下面提到的第三点解决了我的问题。
1.包括 JavaScript 和 CSS 文件: 脚本和 css 文件的顺序也很重要。 jQuery 应该包含在 KendoUI 脚本文件之前。
2。添加对 Kendo.Mvc.dll 的引用: 右键单击解决方案资源管理器中的引用节点,然后单击添加引用。 选择 Add Reference 对话框的 Browse 选项卡并导航到 Telerik UI for ASP.NET MVC 的安装位置。
3.更新 Views 文件夹中的 web.config: 打开 Views/Web.config(如果使用 ASPX,则打开根 Web.config)。 找到命名空间标签。 将以下添加标签附加到命名空间标签。
<add namespace="Kendo.Mvc.UI" />
【讨论】:
3 号为我做了。我添加了一个新区域并且 Kendo() 扩展不再工作。这解决了它。【参考方案2】:问题是您没有包含对Kendo.Mvc.dll
的引用。在位于 here
默认情况下,剑道根目录安装在C:\Program Files (x86)\Telerik
【讨论】:
我有同样的错误,按照所有的指示,但它仍然给我同样的错误。【参考方案3】:我刚刚在剃须刀页面中添加了以下行。它对我有用。
@using Kendo.Mvc.UI;
【讨论】:
【参考方案4】:对我来说,我需要编辑的是_ViewImports.cshtml
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
@addTagHelper *, Kendo.Mvc
@using Kendo.Mvc.UI
现在使用 asp.net core 2.2,剃须刀页面正在解析 @(Html.Kendo()...
【讨论】:
这显然是我的问题,仅适用于工具提示。网格工作正常。我在玩剑道的 vue 版本时将 *, Kendo.Mvc 行注释掉了,因为存在兼容性问题......这仅在升级到 asp.net core 2.2 后才出现【参考方案5】:创建项目时,您必须选择正确的项目类型。有 Telerik asp.net MVC application 项目类型和 Kendo UI Asp.net MVC 5 项目类型。选择 Kendo UI 项目类型将为您提供 javascript kendo 类。这是为了当您想通过 javascript 使用 Kendo 时,我遇到了同样的问题,直到我返回并选择了正确的项目类型。我花了一天半的时间尝试添加 .net 类库,因为我的剃须刀无法工作。我认为 Visual Studio 只是对我正在尝试做的事情感到困惑,而且我可能缺少一个 .net 类库。
【讨论】:
【参考方案6】:关于将 Kendo 添加到现有 ASP Core 应用程序中,我确实发现将 css 和 javascript (js) 文件引用添加到我的 _Layout.cshtml 中除 <environment>
标记之前的任何位置 <head>
会导致问题。我最终确实通过添加以下内容来实现它:
<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>
【讨论】:
【参考方案7】:第一步:
将Kendo.Mvc.dll
添加到引用中。
您可以使用以下 NuGet 库命令。
Install-Package Kendo.Mvc -Version yourversion
第二步: 添加剑道的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
命名空间。
注意:如果在 Project 中使用 Area,你应该将此代码添加到 Area 的 web.config 中。
<system.web>
<pages>
<namespaces>
<add namespace="Kendo.Mvc.UI" />
</namespaces>
</pages>
</system.web>
【讨论】:
【参考方案8】:但是,我遇到了同样的问题,但经过以下步骤后解决了: 1- 打开工具 ==> 扩展和更新 2- 点击左侧的“在线”标签并搜索 Telerik 3- 下载并安装“Telerik ASP.NET AJAX VSExtensions”和“Telerik ASP.NET MVC VSExtensions” 4- 关闭窗口 5- 转到“Telerik”标签 6- 点击“Telerik UI for ASP.NET MVC” 7- 升级向导和升级
这解决了两个站之间 Telerik 版本冲突的问题。此外,如果您在为 Telerik 安装 VS 后安装了剑道,则项目中不包含剑道。
【讨论】:
【参考方案9】:添加Kendo.Mvc.dll
通过 NugetPackage 和
添加 Kendo.Mvc
在 webconfig 文件中添加命名空间
<system.web>
<pages>
<namespaces>
<add namespace="Kendo.Mvc.UI" />
</namespaces>
</pages>
【讨论】:
剑道不需要多个包,只需添加您购买的dll引用即可。【参考方案10】:对于那些仍然面临同样问题的人,以下链接是最新版本的 ASP MVC 的更新博客
Using Telerik in an Existing ASP MVC Project
对于 ASP MVC 4 Click here
【讨论】:
以上是关于Kendo UI 参考在 Razor 视图中不起作用的主要内容,如果未能解决你的问题,请参考以下文章