我正在尝试创建如下静态路由:
public static void RegisterRoutes(RouteCollection routes) {
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Hire",
url: "Hire/{gender}",
defaults: new { controller = "Hire", action = "Index" }
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
但是,例如,当我尝试访问 /Hire/Female 时,IIS 会抛出 404 错误,因为我正在阅读有关路由的信息,我注意到路由通常写为 {controller}/{action}/{something},是否必须拥有{controller} 和 {action} 在我的路线上?
这是控制器的代码:
public class HireController : Controller
{
[HttpGet]
public ActionResult Index(string gender)
{
return View();
}
}
我有一个名为 /Views/Hire/Index.cshtml 的文件
我试图实现的是将来自 /Hire/Male 和 /Hire/Female 的请求路由到我的 HireController 的 Index 操作,但我感觉我忘记了一些东西,因为我尝试了不同的方式并且总是有一个 404回来
更新 1
我从http://www.codeproject.com/Articles/299531/Custom-routes-for-MVC-Application安装了 RouteDebugger ,它只显示了 MVC 的“基本”路由({resource}.axd/{*pathInfo}和 {controller}/{action}/{id}),它没有显示我映射的路线