[英]How to define razor helper for C# MVC project so that namespace is found?
MVC4,實體框架5,ASP.Net4。我正在嘗試制作一個剃刀助手,以便在多個區域中使用。 已經問過幾次了,但是在Google上實施了所有解決方案后,問題仍然存在。
智能感知正在識別幫助程序,但是在實時服務器上,我無法逃脫編譯錯誤“找不到類型或名稱空間名稱'MyHelpers'(您是否缺少using指令或程序集引用?)”。
這是我所做的:
每一步驟之后,請清理,構建,重新啟動Visual Studio,然后重新發布。 但是Razor編譯器中仍無法識別輔助名稱空間。
有人有什么想法嗎?
不要使用視圖助手( @helper
語法)。 這些僅在運行時評估,並且即使不是不可能正確測試也很困難。
而是創建一個擴展HtmlHelper
的靜態類,如下所示:
public static class HtmlHelperExtensions
{
public static IHtmlString Sample(this HtmlHelper htmlHelper)
{
...
}
}
如果取消命名空間聲明,它將變為全局聲明,您可以從任何地方(包括視圖)進行引用。 對於大多數事情來說,這是一個壞主意,但是對於擴展來說,這很好,除非您遇到使用具有相同方法名稱的相似擴展的庫的問題。 如果選擇命名空間是安全的,則只需像以前一樣將命名空間添加到視圖目錄的Web.config中即可。
我個人不喜歡在過去為網站項目設計的App_Code文件夾中添加類。
如果您的解決方案僅包含一個MVC項目,則只需在MVC項目內部創建一個名為Helpers的文件夾,然后將helpers類放入其中。
僅供參考: 如果您正在開發大型應用程序,則需要考慮為助手類創建一個單獨的類庫項目。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.