MVC路由误解

时间:2012-02-20 13:05:19

标签: c# asp.net-mvc-3 routing controller

我正在开发一个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.我做错了什么?

1 个答案:

答案 0 :(得分:0)

在调用MapRoute时从控制器名称中删除“Controller”后缀,以创建到名为InternalController的类的映射。在查找匹配的实现时,框架会附加Controller后缀。 e.g:

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