RouteConfig.cs
がデフォルトのWebアプリケーションを作成しました。ActionLinkでMapRouteのURLパラメータを考慮に入れる方法はありますか?
URLの先頭に顧客追跡IDを追加する必要があるが、存在しないときと同じ機能を維持する必要があるタスクを受け取った。顧客の追跡ID
と
http://localhost:60202/Home/Index //ジェネリック顧客 http://localhost:60202/Location/123/Home/Index // URLこのコード
123
は私の顧客は、彼が私のページへのコールを発信する場所を知っている追跡IDです。私は彼らが世界中で使用して以来、これを変更するように彼らに依頼する権限はありません。私はこのカスタムルートでこれを達成しようとした:この場合
routes.MapRoute( name: "Route", url: "{controller}/{action}/{id}", defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } ); routes.MapRoute( name: "Default", url: "Location/{trackingId}/{controller}/{action}", defaults: new { trackingId = 0, controller = "Home", action = "Index" } );
を私は上記のURLスキーマの両方で自分のアプリケーションにアクセスすることができますが、私は
ActionLink
とBeginForm
はにこれを取る作るために管理することができませんでしたアカウント。@Html.ActionLink("Início", "Index", "Home") //this should have full URL info
すべての場合には
if
ですべてのActionLink
、Url.Content
とBeginForm
を変更し、それらを囲むすることなく、これを達成する方法はありますか?ナビゲーションコードごとにURLスキーマを変更せずにどうすればよいですか?
現在実装されているアプローチは、IISにフォルダを複製することです。現在は4つしかないため、近い将来には維持するのが苦痛になります。
私は理由を知りませんが、this質問に基づいて、それは箱からうまくいくはずです。
編集1
は、私が期待通り
ActionLink
作品を作っているこれら二つのMapRoute
の位置を変えるように見えます。残念ながらUrl.Content
はまだバグです。