Skip to main content
 首页 » 编程设计

c#之在带有 Telerik 的 Razor Web 帮助器中使用 html 帮助器

2024年02月02日24wayfarer

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

@使用 Telerik.Web.Mvc.UI

问题出在 html 帮助程序中,当我键入“@using”然后尝试键入“Telerik”时,visual studio 告诉我命名空间不存在,即使我已经在许多其他地方使用了该指令同一个项目。

如您所见,红色字样,Telerik 命名空间产生错误; '无法解析符号 ...

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

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

谢谢。

编辑:

经过查找和Darin的帮助,我终于找到了问题所在。你可以看看大林回答的评论。

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

@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 框架中的某些内容冲突?我不知道!? :(

请您参考如下方法:

我猜这是因为 Visual Studio 中糟糕的 Razor Intellisense 支持。您的代码在运行时应该可以正常工作。您可以尝试重新打开 View 、重新启动 VS、禁用插件,如果幸运的话,您甚至可以让 Intellisense 工作。

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