我想设置路线如下:
xyz/
映射到一个没有参数的动作方法,但是xyz/{username}
映射到一个不同的动作(在同一个控制器中,不管,无关紧要),它接受一个名为username类型为string的参数。这是我到目前为止的路线:
routes.MapRoute(
"Me",
"Profile",
new { controller = "Profile", action = "Me" }
);
routes.MapRoute(
"Profile",
"Profile/{username}",
new { controller = "Profile", action = "Index" }
);
routes.MapRoute(
"Default",
"{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
目前,如果我导航到/Profile/someuser
,Profile控制器中的Index操作将按预期命中。但如果我导航到/Profile/
或/Profile
,我会获得404.
提供什么?
答案 0 :(得分:4)
对我来说很好。我想您的Me
控制器中没有Profile
操作方法?
我尝试了以下路线:
routes.MapRoute(
"Me",
"Profile",
new { controller = "Home", action = "Me" }
);
routes.MapRoute(
"Profile",
"Profile/{username}",
new { controller = "Home", action = "Index" }
);
使用Index
和Me
操作方法定义如下:
public ActionResult Index(string username) {
ViewData["Message"] = username;
return View();
}
public ActionResult Me() {
ViewData["Message"] = "this is me!";
return View( "Index" );
}
我使用了默认的Home/Index
视图。