6

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" }
    );

しかし、それはデフォルトルートを選んでいます!

4

1 に答える 1