gpt4 book ai didi

asp.net-mvc - 从区域中删除 Controller 名称的 MVC5 自定义路由

转载 作者:行者123 更新时间:2023-12-01 11:36:55 25 4
gpt4 key购买 nike

到目前为止我无法完成这项工作,我需要一些帮助。我有一个基本的 MVC 5 站点,并且添加了一个名为 Administration 的区域。对于我的一生,我无法弄清楚如何正确地为一个区域设置默认 Controller / Action 。

在我的站点中,我有一个名为 Admin 的区域,一个名为 Admin 的 Controller (具有 Index 方法和 View ),这是区域注册:

public override void RegisterArea(AreaRegistrationContext context) 
{
context.MapRoute(
name: "Admin_base",
url: "Admin",
defaults: new { area = "Admin", controller = "Admin", action = "Index", id = UrlParameter.Optional }
);

context.MapRoute(
"Admin_default",
"Admin/{controller}/{action}/{id}",
new { action = "Index", id = UrlParameter.Optional }
);
}

第一个 MapRoute 允许我浏览到 http://myapplication/Admin 并显示我设置的 View (Admin/Index) 并且 URL 保持为 http://myapplication/Admin (这是我想要的)。现在,通过添加它,它会中断到 Controller 的任何进一步路由。因此,当我尝试导航到管理区域中的菜单 Controller 时,它失败了。

有正确的方法吗?

即我需要正确地制作 http://myapplication/Admin/Menu/Create 路由,但还需要保留该区域的默认 Controller/Action。

最佳答案

您应该能够将它们合二为一:

context.MapRoute(
"Admin_default",
"Admin/{controller}/{action}/{id}",
defaults: new { area = "Admin",
controller = "Admin",
action = "Index",
id = UrlParameter.Optional }
);

通过分配默认值,您应该能够调用 /Admin/ 并将其余参数设置为默认值。

关于asp.net-mvc - 从区域中删除 Controller 名称的 MVC5 自定义路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26022097/

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