少し問題があります:
次のルート設定 (デフォルト)があると仮定しますが、オプションの url パラメータ名が異なる他のルートが他にもあるとします。
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home",
action = "Index",
id = UrlParameter.Optional }
);
簡単なロジックを使用してブレッドクラム メニューを作成します。
foreach(var item in RouteData.Values){
if(item.Key.Equals("controller")) {
url = htmlHelper.ActionLink("Link text", "Index", item.Key).ToHtmlString();
}
...
}
さて、私がオンのときhttp://localhost:1234/
、ブレッドクラムのURLは正常に返されます。http://localhost:1234/Home/Index
.
しかし、アクセスするhttp://localhost:1234/Home/Index/1
と、現在のコントローラー (ブレッドクラム側) のアンカー URL は、ブラウザーからの URL のようになります (同じ値、 http://localhost:1234/Home/Index/1
)。
UrlParameter.Optional
アンカー URL に表示されないようにするために、Global.asax のように設定された URL パラメータを自動的に削除することは可能 ですか?
id
単純なケースですが、オプションの url パラメータに多くのルートと異なる名前があります。
ありがとう