gpt4 book ai didi

c# - asp.net mvc 中的区域,一次只能工作一个

转载 作者:太空宇宙 更新时间:2023-11-03 11:52:24 24 4
gpt4 key购买 nike

我的文件夹是这样的:

  • (根目录)/Areas/Admin/Views/..
  • (根)/Areas/Admin/Controllers/...
  • (root)/Areas/Admin/Routes.cs

  • (root)/Areas/Forum/Views/..

  • (根目录)/Areas/Forum/Controllers/...
  • (root)/Areas/Forum/Routes.cs

    public class Routes : AreaRegistration

    { 公共(public)覆盖字符串 AreaName { 得到{返回“管理员”; }

    public override void RegisterArea(AreaRegistrationContext context)
    {
    context.MapRoute(
    "Admin_Default",
    "{controller}/{action}/{Id}",
    new { controller = "Admin", action = "Index", Id = (string)null }
    );
    }

    公共(public)类路由:AreaRegistration{ 公共(public)覆盖字符串 AreaName { 得到{返回“论坛”; }

    public override void RegisterArea(AreaRegistrationContext routes)
    {
    routes.MapRoute(
    "Forum_Default",
    "{controller}/{action}",
    new { controller = "Forum", action = "Index"}
    );
    }

全局.asax

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

AreaRegistration.RegisterAllAreas();

routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = "" } // Parameter defaults
);

起始页应该是 Home/Index 但它以 Admin/Index 开头,为什么?

只有 site.com/Admin 不工作 site.com/Forum

我应该如何让管理区和论坛区正常工作?为什么只有管理员在工作而不是论坛?

当我删除 Admin/Routes.cs 文件时,论坛开始工作...

编辑:

即使我有 ~/Views/中的主页也不会显示为起始页

    routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = "" } // Parameter defaults

在 AreaRegistration.RegisterAllAreas() 之后的我的 Global.asax 中;

最佳答案

我相信您的区域映射应该像这样构造。

public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"Admin_Default",
"Admin/{controller}/{action}/{Id}",
new { controller = "Admin", action = "Index", Id = (string)null }
);
}

public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"Forum_Default",
"Forum/{controller}/{action}/{Id}",
new { controller = "Forum", action = "Index"}
);
}

防止您的路线发生冲突,我认为这是您的情况。因为您的默认路由与您的管理路由匹配。

关于c# - asp.net mvc 中的区域,一次只能工作一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1721604/

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