次のように静的ルートを作成しようとしています。
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})、マップしたルートが表示されません