Asp.net-Core

在區域視圖中使用 TagHelper

  • January 5, 2021

我花了最後一個小時重構使用區域,現在我所有的視圖似乎都沒有函式 taghelpers:/

這就是 Index.cshtml 中的內容

      <div class="btn-group">
          <a asp-controller="Survey" asp-area="Admin" asp-action="Create" class="btn btn-primary">Create New</a>
      </div>

…這是呈現的 HTML:/

<div class="btn-group">
 <a asp-controller="Survey" asp-area="Admin" asp-action="Create" class="btn btn-primary">Create New</a>
</div>

Intellisense 甚至不顯示 asp- 前綴,並且 asp- 屬性上的語法突出顯示也失去了。

其他 SO 問題引用“asp-route-area”,但這只是像其他問題一樣呈現逐字。

當它們在 ~/Views/Name/Index.cshtml 中時,這些都執行良好,將它們移出 ~/Areas/Name/Views/Name/ 和 nopers…

有什麼想法嗎?史蒂夫

根據官方文件

@addTagHelper 指令使標籤助手可用於視圖。本例中視圖文件為Views/_ViewImports.cshtml,預設為Views文件夾及子目錄下的所有視圖文件繼承;使標籤助手可用。上面的程式碼使用萬用字元語法 (“*”) 來指定指定程序集 (Microsoft.AspNetCore.Mvc.TagHelpers) 中的所有標記幫助程序將可用於 Views 目錄或子目錄中的每個視圖文件。

如果每個區域使用一個佈局,要使用內置標籤助手,您應該_ViewImports.cshtml~/Areas/Name/Views/文件夾中添加(如果您使用不需要的共享佈局。請參閱MusicStore 項目以獲取共享佈局範例)。

我猜您每個區域使用了一種佈局,而您沒有添加_ViewImports.cshtml ~/Areas/Name/Views/. 複製/Views/_ViewImports.cshtml~/Areas/Name/Views/.

引用自:https://stackoverflow.com/questions/39652557