私はいくつかのカスタムルートをうまく動かそうとしています。自動車アプリ用に 2 つのページがあります。最初のページには車両のリストが表示されます。ユーザーがこのページで生成されたリンクをクリックすると、製品リスト ページに移動します。問題は、このページがリンクを適切に生成しないことです。
ルートは次のとおりです。
routes.MapRoute(
"Select_Vehicle",
"Select_Vehicle/{id}/{make}",
new { controller = "Select_Vehicle", action = "Index", id = UrlParameter.Optional, make = UrlParameter.Optional });
routes.MapRoute(
"Products",
"Products/{id}/{make}/{model}",
new { controller = "Products", action = "Index", id = UrlParameter.Optional, make = UrlParameter.Optional, model = UrlParameter.Optional });
routes.MapRoute(
"Default",
"{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional });
Select_Vehicle ページは、次のようなリンクを生成する必要があります。
/products/horns/dodge/dakota
しかし、私が得るのはこれです:
/Products/Index/horns?make=dodge&model=Dakota
正しく動作しません。また、「インデックス」がデフォルトであるため、なぜ「インデックス」も表示されるのかわかりません。
私はActionLinkとRouteLinkの両方を試しました:
@Html.RouteLink(model, new { Controller = "Products", id = Model.CategoryName, make = Model.CurrentMake, model = model })
@Html.ActionLink(model, "Index", "Products", new { id = Model.CategoryName, make = Model.CurrentMake, model = model }, null)
これは私を夢中にさせています。