ASP.Net核心:asp-action标签不起作用

时间:2017-05-19 19:55:22

标签: asp.net-core

我有这个简单的锚标记。

<a asp-area="Admin" asp-action="Create" asp-controller="Users" class="btn btn-default">Create</a>

代码结构如下。

enter image description here

生成的标记如下

<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?}");
        });

2 个答案:

答案 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?}");