2013-03-05 41 views
4

我使用RazorGenerator預編譯我的視圖。我也想使用Global Razor助手(在App_Code目錄中的cshtml文件中定義)。然而,編譯,出現以下錯誤預編譯視圖的助手

拋出了「KarbonHelper」這個名字不會在目前情況下

然而,智能感知似乎檢測輔助方法存在。我已經納入剃刀預編譯按照以下博客Razor Precompilation

此外,我注意到,輔助文件KarbonHelper.cshtml是在預期的位置

obj\CodeGen\App_Code\KoolHelper.cshtml.cs 

任何實際的前編譯成cs文件想法或建議,歡迎

回答

1

問題是App_Code代碼生成過程(由微軟代碼控制)爲您創建一個靜態方法,而RazorGenerator爲您創建一個實例方法。

我仍在尋找修復這個不涉及可怕的黑客攻擊。

1

首先嚐試在Web.config文件的Views文件夾中的system.web.webPages.razor部分的命名空間部分下添加此項(使用項目的基名稱空間的名稱更改「MyProjectBaseNamespace」 - 通常等於項目的名稱 - 或者只是查看生成的文件KoolHelper.cshtml.cs使用哪個命名空間)。

<add namespace="MyProjectBaseNamespace.App_Code" /> 

如果還有錯誤嘗試在App_Code文件添加此指令幫手的第一行:然後

@* Generator: MvcHelper GeneratePrettyNames : true *@ 

RazorGenerator會生成一個類繼承System.Web.WebPages.HelperPage靜態@幫助器方法,類名與文件名相同。

關於指令的更多信息: https://github.com/RazorGenerator/RazorGenerator#special-razor-directives