私たちのサイトには、ユーザーがサインアップして、 ~/ pageSlugでホストしたいサイトに自分のページを与えることができるエリアがあります。Global.asax のルールを使用して実行しようとしましたが、~/ Controllerを Index アクションに直接マップできるようにする基本的なデフォルト ルートが壊れてしまいました。userSlug の前に任意の種類のセパレーターを配置することは許可されていないため、~/p/ pageSlugは実際にはここではオプションではありません。
ユーザー ページをルートに追加するという点では、App_Start でページを循環し、それらを RoutesTable に明示的に追加しています。これは正常に機能しており、これを 1 日 1 回のタスクにするのに十分な長さの AppPool 更新が設定されています。ただし、これにより、ユーザーのために「ページをライブにする」ために24時間のターンアラウンドが残りますが、これを解決しようとしています.
理想的には、ユーザーがサインアップしたら、関連するルートを RouteTable に動的に追加することです。私はそれをやってみました:
RouteTable.Routes.Add(
RouteTable.Routes.MapRoute(
toAdd.UrlSlug + "Homepage",
toAdd.UrlSlug,
new { controller = "Controller", View = "View", urlSlug = toAdd.UrlSlug }
)
);
しかし、それはうまくいかないようでした。私はどこにも解決策を見つけることができません.私のコードは恐ろしく素朴であり、ルーティングの理解の欠如を裏切っていると確信しています-助けてください!