これが私のRouteConfig.cs
routes.MapRoute(null,
"{controller}/Page{page}",
new {controller = "Product", action = "Index", category = (string) null},
new {page = @"\d+"}
);
routes.MapRoute(null,
"{controller}/{category}",
new {controller = "Product", action = "Index", page = 1}
);
routes.MapRoute(null,
"{controller}/{category}/Page{page}",
new {controller = "Product", action = "Index"},
new {page = @"\d+"}
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
URL を生成するコードは次のとおりです。
@Html.ActionLink("View Cart", "Index", "ShoppingCart", null, new { @class = "btn btn-orange" })
Product/Page2
たとえば、、、Product/Laptop
に移動するとうまく機能しProduct/Laptop/Page2
ます。問題は、現在の URL にPage
セグメントが含まれるたびに、発信 URL を生成するためにそのセグメントを再利用しようとすることです。したがって、Product/Page2
上記の生成された URL にいる場合は、 ShoppingCart/Page2
. これを回避する方法がわかりません。
私を助けてください。どうもありがとう。
編集!!!
私は回避策を見つけました。を使用する代わりに、次のようActionLink
に使用します。RouteLink
@Html.RouteLink("View Cart", "Default", new { controller = "ShoppingCart", action = "Index" }, new { @class = "btn btn-orange" })
でもまだまだ使いたいActionLink
ので助けてください。
編集!!!
へのリンクを生成すると、回避策が機能しませんShoppingCart/Checkout
。それでもコントローラーでIndex
アクションを起こす必要があります。ShoppingCart