0

次のように静的ルートを作成しようとしています。

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})、マップしたルートが表示されません

4

1 に答える 1