我正在开发一个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.我做错了什么?
答案 0 :(得分:0)
在调用MapRoute时从控制器名称中删除“Controller”后缀,以创建到名为InternalController
的类的映射。在查找匹配的实现时,框架会附加Controller后缀。 e.g:
routes.MapRoute(
"UserProfileInfo",
"{controller}/profile",
new { controller = "Internal", action = "UserProfileInfo" }
);