gpt4 book ai didi

asp.net-mvc - Mvc区域路由?

转载 作者:行者123 更新时间:2023-12-02 06:08:07 26 4
gpt4 key购买 nike

区域文件夹如下所示:

Areas 
Admin
Controllers
UserController
BranchController
AdminHomeController

项目目录如下所示:

Controller
UserController
GetAllUsers

区域路线登记

public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"Admin_default",
"Admin/{controller}/{action}/{id}",
new { action = "Index", id = UrlParameter.Optional },
new { controller = "Branch|AdminHome|User" }
);
}

项目路线注册

public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional },
namespaces: new string[] { "MyApp.Areas.Admin.Controllers" });
}

当我这样路由时:http://mydomain.com/User/GetAllUsers 我收到资源未找到错误(404)。将 UserController 添加到 Area 后出现此错误。

如何修复此错误?

谢谢...

最佳答案

你弄乱了你的 Controller 命名空间。

您的主要路线定义应该是:

routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional },
namespaces: new string[] { "MyApp.Controllers" }
);

您的管理区域路由注册应该是:

public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"Admin_default",
"Admin/{controller}/{action}/{id}",
new { action = "Index", id = UrlParameter.Optional },
new { controller = "Branch|AdminHome|User" },
new[] { "MyApp.Areas.Admin.Controllers" }
);
}

注意应如何使用正确的命名空间。

关于asp.net-mvc - Mvc区域路由?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15616240/

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