私たちのサイトには、人々がサインアップして〜/ pageSlugにホストしたいサイトに自分のページを与えることができます。私はGlobal.asaxでルールを実行しようとしましたが、〜/ コントローラがインデックスアクションに直接マップすることができる基本的なデフォルトルートが破られました。私はuserSlugの前にセパレータを置くことは許されていないので、〜/ p/pageSlugは実際にはオプションではありません。ASP.NET MVC RouteTableに動的に追加するにはどうすればよいですか?
ルートにユーザーページを追加するという点で、私はApp_Startのページをサイクリングして明示的にRoutesTableに追加しています。これは正常に動作しており、AppPoolのリフレッシュでこれを1日1回の作業に充分長く設定しています。これは私たちが解決しようとしている私たちのユーザーのために "ページを生き生きさせる"ための24時間の転換を私たちに残す。
理想的には、ユーザーがサインアップすると、関連するルートをルートテーブルに動的に追加することです。私はそれをやってみた:
RouteTable.Routes.Add(
RouteTable.Routes.MapRoute(
toAdd.UrlSlug + "Homepage",
toAdd.UrlSlug,
new { controller = "Controller", View = "View", urlSlug = toAdd.UrlSlug }
)
);
しかし、それは動作していないようだ。私は他の場所で解決策を見つけることができません。私のコードは恐ろしく素朴で、ルーティングの理解が不足していることを裏切っています。
私はこの1つを解決しますが、すぐに手にコードしない、とすると、自分の質問に答えるのエチケットのわからなかったしました!誰かが後者についてアドバイスできれば、私はそれをどのように修正したかを人々に知らせてくれるでしょう:) – jonsidnell
あなた自身の質問に答え、それを正しいものとしてマークすることは有効です。古い質問ですが、可能であればあなたのソリューションを投稿することはできますか?完全性の両方の、と私は正確に同じ問題を抱えているという事実:) – Will