0

ここに私の簡単なアクションリンクがあります:

<span>@Html.ActionLink(trip.TripDescription, "Index", "Home", new { trip = trip.Trpp, year = trip.TripYear })</span>

そのリンクのルートは次のとおりです。

routes.MapRoute(
                "Index",
                "{controller}/{action}/{trip}/{year}",
                new { controller = "Home", action = "Index", trip = "", year = "" }
            );

レンダリングされているものは次のとおりです。

http://localhost:31065/Home/Index?trip=Green&year=2013

代わりにこれをレンダリングしたい:

http://localhost:31065/Home/Index/Green/2013

これらの URL はどちらも機能しますが、見かけ上は後者を好みます。

古い学校を使用する代わりに、パラメーターをスラッシュの後ろに配置するには、何を変更する必要がありますか? と &

ティア

4

1 に答える 1

1

Indexおそらく以前に定義された他のルートが原因で、ルートがヒットしたことがないように見えます。常に最も具体的なルート定義を最初に保持し、デフォルトのままにしてController/Action/Id最後に定義します。

routes.MapRoute(
    "Index",
    "{controller}/{action}/{trip}/{year}",
    new { controller = "Home", action = "Index" }
);

routes.MapRoute(
    "Default",
    "{controller}/{action}/{id}",
    new { controller = "Default", action = "Index", id = UrlParameter.Optional }
);
于 2013-08-29T18:56:59.110 に答える