0

少し問題があります:

次のルート設定 (デフォルト)があると仮定しますが、オプションの 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 パラメータに多くのルートと異なる名前があります

ありがとう

4

1 に答える 1