在 AspNet.Core 中,Tag Helper asp-area 不起作用



我最近更新了Visual Studio for Update 3ASP.Net Core for 1.0.0。

我按照文档中的教程进行操作,并尝试设置使用区域,例如 https://docs.asp.net/en/1.0.0/mvc/controllers/areas.html

但是,生成的链接 http://localhost:2187/?area=Admin,而不是 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}");
});

更新

您必须对路由重新排序,因为在这种情况下,将匹配第一个路由。我建议看一下路由文档以了解为什么顺序很重要。