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下才會生效