在AspNet.Core中,标签助手asp-area无法正常工作。

3

我最近更新了 Visual StudioUpdate 3,并将 ASP.Net Core 更新到了 1.0.0 版本。

我按照 文档 中的教程尝试使用区域(Areas),像这样设置: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}");
            });

出了什么问题?

解决方案

问题在于路由的顺序,正如答案所提到的。

1个回答

7

这表示您没有注册一个以区域为参数的路由。

以下是一个针对区域的路由示例:

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

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

更新:

您需要重新排列路由,因为第一个路由将匹配。建议查看路由文档以了解路由的重要性。


看起来像是文档 - Renatto Machado

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接