gpt4 book ai didi

c# - 具有区域的 ASP.NET Core 2 默认路由

转载 作者:太空狗 更新时间:2023-10-30 00:17:57 26 4
gpt4 key购买 nike

c我查看了有关区域路由的各种帖子,但仍然无法解决我的问题。

我想以有两条路线的方式拆分我的应用程序。

  • /Areas/Panel
  • /Areas/Website

在每个区域内都有 HomeController 和对应于操作的适当方法。

我希望每当用户登陆任何 1 级路线时,即:

  • /家
  • /联系人
  • /关于/公司
  • 等等

指向/Areas/Website/{controller}/{action}

或者

  • /面板
  • /面板/主页
  • /面板/用户/2
  • 等等

/Areas/Panel/{controller}/{action}

我当前的 MVC 路线是:

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

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

但它不起作用,可能是因为我不完全理解如何告诉路由器默认使用 Website 区域。我在 Controller 本身之前尝试了各种指令,但没有用。

我可以征求您的意见吗?

提前谢谢你。

最佳答案

它不起作用的一个原因是您以错误的顺序注册了路由。从路由表的顶部到底部评估路由,第一个匹配的获胜。

另一个问题是,如果您希望将请求定向到 Website,则需要将“默认”路由变成区域路由(使用 MapAreaRoute 扩展方法) > 区域。

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

routes.MapAreaRoute(
name: "default",
areaName: "Website",
template: "{controller=Home}/{action=Index}/{id?}");
});

引用:Why map special routes first before common routes in asp.net mvc?

关于c# - 具有区域的 ASP.NET Core 2 默认路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48368557/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com