1

我尝试使用 Telerik 的控件创建一个 html 帮助程序,但要做到这一点,我必须在文件顶部有这个指令:

@使用 Telerik.Web.Mvc.UI

问题出在 html 助手中,当我输入“@using”然后尝试输入“Telerik”时,Visual Studio 告诉我,即使我已经在同一个项目的许多其他地方使用了这个指令,命名空间也不存在。

在此处输入图像描述

正如你看到的红色字样,Telerik 命名空间产生错误;'无法解析符号...

这是同一项目的我的 EditorTemplates 文件夹之一中的相同代码,但在这种情况下,没有错误:

在此处输入图像描述

是因为除了 MVC 框架之外无法进行控制还是我错过了什么?

谢谢你。

编辑:

经过搜索并在达林的帮助下,我终于找到了问题所在。您可以查看 Darin answer 的评论。

此外,这是我最终的有效代码:

@using System.Web.Mvc
@using Telerik.Web.Mvc.UI

@helper IntegerTextBox(System.Web.Mvc.HtmlHelper html, string id, int? value, bool enable = true)
{
   @(html.Telerik().IntegerTextBox()
        .Name(id)
        .InputHtmlAttributes(new {style = "width:200px"})
        .Spinners(false)
        .EmptyMessage("")
        .MaxValue(int.MinValue)
        .MaxValue(int.MaxValue)
        .Value(value)
        .Enable(enable)
        )
}

就像我说的那样,您不能对 System.Web.Mvc 使用 @using 指令来减少第一个参数的完全限定类型。我不知道为什么......'HtmlHelper'看起来像'html helper'或'@helper'......这个词与MVC框架中的某些东西冲突?我不知道!?:(

4

1 回答 1

5

我想这是由于 Visual Studio 中糟糕的 Razor Intellisense 支持造成的。您的代码在运行时应该可以正常工作。您可以尝试重新打开视图,重新启动 VS,禁用插件,如果这是您的幸运日,您甚至可以让 Intellisense 正常工作。

顺便说一句,您可以使用您的<namespaces>部分~/Views/web.config(不要与 混淆~/web.config)并添加Telerik.Web.Mvc.UI名称空间。这将避免您将其添加到每个需要它的 Razor 视图中。显然,要在修改此文件后使更改生效,请不要忘记重新打开 razor 页面(正如我已经说过的 Razor Intellisense 在 VS 中很糟糕)。

于 2012-08-08T18:24:47.197 回答