Areas區域內的View,Tag Helper失效,asp-action,asp-controller無法解析

Areas區域內的View,Tag Helper失效,asp-area  asp-controller  asp-action失效,導致前端頁面無法解析成標準路徑

MVC Core 6.0,專案內新增Areas資料夾,在Areas資料夾按右鍵Add(新增)/Areas(區域),選擇MVC Areas(MVC區域),由VS工具新增Controllers,Models,Views資料夾

這裡的三個資料夾都是空的,缺少_ViewImports.cshtml這個檔案,導致Views 所有Tag Helper標籤全失效

例如

<a asp-area="SomeArea" asp-controller="SomeController" asp-action="SomeActino">SomeURL</a>

在瀏覽器應該要變成<a href="/SomeArea/SomeController/SomeActino">SomeURL</a>

但在瀏覽器按F12開發者模式下只看到<a asp-area="SomeArea" asp-controller="SomeController" asp-action="SomeActino">SomeURL</a>

並無顯示<a href="/SomeArea/SomeController/SomeActino">SomeURL</a>

解決方式:

複製根目錄下的Views內的_ViewImports.cshtml,貼到Areas/Views下

並將檔案內容@using指向正確的Model 例如 @using [專案名稱].Areas.[Areas名稱].Models

參考來源https://blog.csdn.net/qq_41015058/article/details/104538088


順道一提

根目錄下的Views內的_ViewStart.cshtml也一併貼到Areas/Views下,並將檔案內容Layout指向想使用的Layout(如果有的話)

根目錄下的整個Shared資料夾複製到Areas/Views下,Shared資料夾的_Layout.cshtml內可能會有一些前端套件比如bootstrap,放到Areas/Views下才會生效