[英]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.