---
# System prepended metadata

title: Helper
tags: [Learning]

---

# 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)

---