我花了最后一小时重构使用区域,现在我的所有视图似乎都没有函数标记:/
所以这就是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问题参考&#34; asp-route-area&#34;但这只会像其他人一样呈现出来。
这些都在〜/ Views / Name / Index.cshtml中工作正常,将它们移到〜/ Areas / Name / Views / Name /和nopers ......
有什么想法? 史蒂夫
答案 0 :(得分:13)
根据官方docs:
@addTagHelper指令使Tag Helpers可用于视图。 在这种情况下,视图文件是Views / _ViewImports.cshtml,其中包含 默认值由Views文件夹中的所有视图文件继承 子目录;使Tag Helpers可用。上面的代码使用了 通配符语法(“*”)指定指定的所有Tag Helpers 程序集(Microsoft.AspNetCore.Mvc.TagHelpers)将可用 Views目录或子目录中的每个视图文件。
如果您为每个区域使用一个布局,要使用内置标记帮助器,您应在_ViewImports.cshtml
文件夹中添加~/Areas/Name/Views/
(如果您使用共享布局,则不需要。请参阅{{ 3}}用于共享布局示例。)
我猜您每个区域使用了一个布局,但您没有添加_ViewImports.cshtml
~/Areas/Name/Views/
。将/Views/_ViewImports.cshtml
复制到~/Areas/Name/Views/
。
答案 1 :(得分:2)