在区域视图中使用TagHelpers

Ste*_*ott 6 tag-helpers asp.net-core

我花了最后一小时重构使用区域,现在我的所有视图似乎都没有函数标记:/

所以这就是Index.cshtml中的内容

       <div class="btn-group">
           <a asp-controller="Survey" asp-area="Admin" asp-action="Create" class="btn btn-primary">Create New</a>
       </div>
Run Code Online (Sandbox Code Playgroud)

...这是呈现的HTML:/

<div class="btn-group">
  <a asp-controller="Survey" asp-area="Admin" asp-action="Create" class="btn btn-primary">Create New</a>
</div>
Run Code Online (Sandbox Code Playgroud)

Intellisense甚至不显示asp-前缀,并且asp-属性上的语法突出显示也会丢失.

其他SO问题引用了"asp-route-area",但它只是像其他的一样呈现出verbtim.

这些都在〜/ Views/Name/Index.cshtml中工作正常,将它们移到〜/ Areas/Name/Views/Name /和nopers ......

有什么想法吗?史蒂夫

ade*_*lin 14

根据官方文件:

@addTagHelper指令使Tag Helpers可用于视图.在这种情况下,视图文件是Views/_ViewImports.cshtml,默认情况下,它由Views文件夹和子目录中的所有视图文件继承; 使Tag Helpers可用.上面的代码使用通配符语法("*")来指定在指定的组件(Microsoft.AspNetCore.Mvc.TagHelpers)所有标签助手将可在浏览目录或子目录每个视图文件.

如果每个区域使用一个布局,使用内置的标签佣工你应该添加_ViewImports.cshtml~/Areas/Name/Views/文件夹(如果使用共享的布局则不需要.见MusicStore项目共享布局实例).

我猜你每个区域使用一个布局而你没有添加_ViewImports.cshtml ~/Areas/Name/Views/.复制/Views/_ViewImports.cshtml~/Areas/Name/Views/.