簡體   English   中英

使用Telerik在Razor Web幫助器中使用html幫助器

[英]Using html helpers in Razor web helper with Telerik

我試圖用Telerik的控件創建一個html helper,但是要做到這一點,我必須在文件頂部使用以下指令:

@使用Telerik.Web.Mvc.UI

問題出在html helper中,當我鍵入'@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的支持不佳所致。 您的代碼在運行時應該可以正常運行。 您可以嘗試重新打開視圖,重新設置VS,禁用插件,如果這是您的幸運日,您甚至可以使Intellisense工作。

順便說一句,您可以使用~/Views/web.config<namespaces>部分(不要與~/web.config混淆)並添加Telerik.Web.Mvc.UI命名空間。 這將避免您需要將其添加到需要它的每個Razor視圖中。 顯然,要使更改在修改此文件后生效,請不要忘記重新打開剃須刀頁面(正如我已經說過的那樣,Razor Intellisense在VS中很爛)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM