我有这个简单的锚标记。
<a asp-area="Admin" asp-action="Create" asp-controller="Users" class="btn btn-default">Create</a>
代码结构如下。
生成的标记如下
<a class="btn btn-default" href="/Admin/Users">Create</a>
缺少动作(创建),但其余标签似乎工作正常。
路由设置如下
app.UseMvc(
routes =>
{
routes.MapRoute(name: "default", template: "{controller=Home}/{action=Index}/{id?}");
routes.MapRoute(
name: "areaRoute",
template: "{area:exists}/controller=Admin/{action=Index}/{id?}");
});
答案 0 :(得分:4)
此问题的解决方法是将
~/Views/_ViewImports.cshtml
复制到~/AreaName/Views/_ViewImports.cshtml
这是因为Tag助手因为而可用
中提供的@addTagHelper
_ViewImports.cshtml page.
完成此操作后,您的Tag助手智能感知功能也可以 您的Tag Helper代码有效!
希望这会有所帮助。感谢
参考:[Resolved] Tag helper syntax is not working for the Areas view in ASP.NET Core - DotNetFunda.com
答案 1 :(得分:1)
订单很重要......将区域路线置于默认区域之上。
routes.MapRoute(
name: "adminDefault",
template: "{area:exists}/{controller=Home}/{action=Index}/{id?}");
//catchall
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");