【问题标题】:Trying to Use Custom URL ASP.NET MVC尝试使用自定义 URL ASP.NET MVC
【发布时间】:2021-06-17 13:35:28
【问题描述】:

尝试在 MVC 中使用自定义路由 URL,但不起作用

我需要Admin/Company 等 URL,但也有与公司控制器冲突的管理控制器:

routes.MapRoute(
            name: "Company",
            url: "Admin/Company",
            defaults: new {controller = "Company", action = "Index" }
        );

尝试执行此操作,但不知道为什么 Admin Controller 首先调用,我需要在 URL 中使用 Admin。有什么帮助吗?

【问题讨论】:

  • 看来你让自己过不下去了。如果有AdminController,那么“/Admin”会去那里。如果你不能在那里添加公司管理,你必须像你建议的那样做一个复杂的解决方法......你为什么不重新考虑这个并使用“/Company/Admin”?
  • @Sohaib Azhar:如果您有Admin 控制器和Company 控制器,请描述您的路线的所有要求,并包括所有相关代码。更好地显示RegisterRoutes(RouteCollection routes) 的所有相关部分。
  • @JHBonarius 我确实想到了 /Company/Admin,但我之前需要 Admin 部分
  • @Jackdaw 你能解释一下吗?
  • @Sohaib Azhar:实际上,您定义了正确的路线。如果您在浏览器中输入Admin/Company URL,您将激活CompanyController.Index() 操作方法。如果您输入/Admin/Admin/Index URL,您将输入AdminController.Index() 操作方法。那么,你的问题是什么?您应该更准确地描述您的问题并显示所有相关的代码部分。

标签: c# asp.net asp.net-mvc routes


【解决方案1】:

您需要将其更新为controller = "Admin"

routes.MapRoute(
            name: "Company",
            url: "Admin/Company",
            defaults: new {controller = "Admin", action = "Index" }
        );

见我的 cmets。他们可能会有所帮助。

routes.MapRoute(
                name: "Company",  //route name
                url: "Admin/Company",  // url pattern
                defaults: new {controller = "Admin", action = "Index" }  //defaults for route
            );

然后您可以在您的管理控制器中添加您的公司视图:

public ActionResult Company()
        {
            ViewData["Title"] = "Company Page";

            return View();
        }

【讨论】:

    猜你喜欢
    • 2016-10-15
    • 1970-01-01
    • 2012-11-18
    • 2014-04-11
    • 2015-02-01
    • 1970-01-01
    • 2013-07-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多