在 AspNet.Core 中,Tag Helper asp 区域不起作用

In AspNet.Core the Tag Helper asp-area doesn't work

我最近为 Update 3 更新了 Visual Studio,为 1.0 更新了 ASP.Net Core。 0.

我遵循了 documentation and I tried set up for use Areas like this https://docs.asp.net/en/1.0.0/mvc/controllers/areas.html

中的教程

然而,生成的 link 是 http://localhost:2187/?area=Admin, instead of http://localhost:2187/Admin/Home/Index

更新

我的路线:

app.UseMvc(routes =>
            {
                routes.MapRoute(
                    name: "default",
                    template: "{controller=Home}/{action=Index}/{id?}");

                routes.MapRoute(
                    name: "areaRoute",
                    template: "{area}/{controller=Home}/{action=Index}");
            });

怎么了?

解决方案

问题出在答案提到的路线顺序上。

这表示您没有注册某个区域的路线。

区域路线示例:

app.UseMvc(routes =>
{
  routes.MapRoute(name: "areaRoute",
    template: "{area}/{controller=Home}/{action=Index}");

  routes.MapRoute(
      name: "default",
      template: "{controller=Home}/{action=Index}");
});

更新:

您必须重新排序路线,因为在这种情况下,第一条路线将被匹配。我建议看一下 routing docs 以了解顺序的重要性。