MVC路由误解

本文关键字:误解 路由 MVC | 更新日期: 2023-09-27 18:25:06

我正在开发一个ASP.NET MVC应用程序。出于某种原因,每次我认为我理解路由时,都会弹出一些我不理解的东西。目前,我有两条路线似乎无法确定。我的目录结构看起来像下面的

- Views
  - Internal
    - Profile
      - Index.cshtml
    - Input
      - Page1.cshtml

在我的global.asax.cs文件中,我添加了以下映射:

  routes.MapRoute(
    "UserProfileInfo",
    "{controller}/profile",
    new { controller = "Internal", action = "UserProfileInfo" }
  );

  routes.MapRoute(
    "Page1",
    "{controller}/input/page1",
    new { controller = "Internal", action = "Page1" }
  );

在MyController中,我有以下内容:

  public ActionResult UserProfileInfo()
  {
    return View("~/Views/internal/profile/Index.cshtml");
  }
  public ActionResult Page1()
  {
    return View("~/Views/internal/input/Page1.cshtml");
  }

我想将我的操作存储在一个控制器中。我以为我把一切都安排好了。但我还是得了404分。我做错了什么?

MVC路由误解

在对MapRoute的调用中删除控制器名称的"Controller"后缀,以创建到名为InternalController的类的映射。当寻找匹配的实现时,框架会附加Controller后缀。例如:

    routes.MapRoute( 
    "UserProfileInfo", 
    "{controller}/profile", 
    new { controller = "Internal", action = "UserProfileInfo" } 
);