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") 添加到剃刀视图中。

我读过的许多文章都建议将&lt;add namespace="Kendo.Mvc.UI"/&gt; 添加到 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 中除 &lt;environment&gt; 标记之前的任何位置 &lt;head&gt; 会导致问题。我最终确实通过添加以下内容来实现它:

<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 视图中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Kendo UI 网格过滤器在引导模式中不起作用

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

如何在 Razor 中使用 Kendo UI?

如何使用 MVC Razor 在编辑器模板中将 Kendo UI Grid 绑定到我的模型集合

UI警报表视图在ios7中不起作用

为啥此模型绑定在 Razor 页面中不起作用