ASP.NETMVC3は初めてです。
Global.asaxでいくつかのルートを構成しましたが、これに対して@Html.ActionLinkヘルパーメソッドを使用していくつかのハイパーリンクを生成しています。
以下のコードの一番上のリンクを除いて、すべてのリンクが正しくレンダリングされています。
Global.asax
routes.MapRoute(
null,
"Section/{Page}/{SubPage}/{DetailPageName}",
new { controller = "Base" }
);
routes.MapRoute(
null,
"Section/{Page}/{SubPage}",
new { controller = "Base", action = "SubPage" }
);
routes.MapRoute(
null,
"Section/{Page}",
new { controller ="Base", action="LandingPage"}
);
routes.MapRoute(
"Default", // Route name
"{controller}/{action}", // URL with parameters
new { controller = "Base", action = "Index" } // Parameter defaults
);
ActionLinkコード
@Html.ActionLink(@subPages.LinkedPageName, "DetailPage",
new {
Controller = "Base",
Page = @ViewBag.PageName,
SubPage = @Model.SubPageName,
DetailPageName = subPages.LinkedPageName
})
上記は、トップルートを選択する必要があります。
routes.MapRoute(
null,
"Section/{Page}/{SubPage}/{DetailPageName}",
new { controller = "Base" }
);
しかし、それはデフォルトルートを選んでいます!