# Helper ###### tags: `Learning` ## 解決 App_Code 中不能使用 MVC Helper Methods ### 問題 - 無法使用原生的 Helper ![](https://i.imgur.com/8XOFtoS.png) ### 解法 ![](https://i.imgur.com/hGNn1yC.png) [2015-10-26[.NET MVC] @Helper 輔助方法](https://dotblogs.com.tw/jackeir/2015/10/26/153694) > 解決App_Code中不能使用MVC Helper Methods > > 在學習@helper時第一個拿來當作練習的題目是做子功能連結目錄,發現像@Html.ActionLink這種輔助Method似乎無法支援,Google了一下相關討論串,其實這個支援應該已經在VS 2013實作了,但我們需將原頁面的WebViewPage物件傳入,程式碼片段如下: > @helper ShowViewLabMenu(WebViewPage page) > { > @page.Html.ActionLink("[Help]", "Help", "Home") > @page.Html.ActionLink("[Back To List]", "Index", "Home") > } > > 當然,要加入System.Web.Mvc及System.Web.Mvc.Html兩個命名空間才能使用WebViewPage以及ActionLink。 > > @using System.Web.Mvc.Html > @using System.Web.Mvc > > 而在使用時範例如下 > > @MenuHelper.ShowViewLabMenu(this) ### 解決後 ![](https://i.imgur.com/bxR1vEU.png) ### 結論 傳入原本的 Page 過來也是合理 --- ## 編輯器一直出現錯誤,但其實程式可以跑 ![](https://i.imgur.com/GZnoWGV.png) ### 原因 AppCode 的東西會在編譯(執行)後建立,所以其實是正常的,只是編輯器不知道 AppCode 的東西 ### 解法 在 web.config 中的 compilation 加上 optimizeCompilations="true" 後就會正常了 ``` <compilation debug="true" targetFramework="4.7.2" optimizeCompilations="true"/> ``` ### optimizeCompilations 說明 ![](https://i.imgur.com/4clILIr.png) ---