2011-07-14 7 views
5

私はこのようなURLスキームがあります。MVCコントローラがルータにバブリングして戻ってきますか?

website.com/keywords 

を、私はまた、特定のコントローラを持っている:

website.com/controller/action 

時にはキーワードは、コントローラのURLのように非常に多くを見て、または/」のいくつかの種類を持っていることurl/thingy "を入力してください。すべてのキーワードURLはデータベースに保存され、静的コンテンツが返されます。私ができることが大好きなのは、最初に "キーワード"コントローラをマッチさせて(単に{*}を使用する)、URLがデータベースに見つからない場合は、ルータにポップバックして、マッチングは続行されます。

ユニバーサルマッチングルータを最後に配置し、適切なコントローラに302リダイレクトするという回避策がありますが、これはより長いラウンドトリップ時間です。ポップできる場合は不要ですバックアウト。

+3

リストに一致するカスタム制約をルートに追加できます。たとえば、制約内のデータベースを参照することもできますが、すべてがルーティングエンジンを通過するため、効率的にルックアップをキャッシュしない限り、スケーラビリティの観点からは賢明ではありません。いずれにしても、これはSOの方がより良い回答になる可能性があります。 – FinnNk

答えて

2

私は答えを持っているのが大好きなので、私はこの仕事をしたいとは思っていませんが、私はこのテーマにブックマークを付けました。 custom route constraint

あなたがカスタムルートの制約をどのように作成するかを見ることができます。 を検索してください。リスト2 - NotEqualConstraint.csこれらのキーワードのキャッシュリストを渡すことも、カスタムルート制約をキーワードリスト自体に含めることもできます。

+1

訪問者1人当たりのヒット件数が1ページ程度で済むことがわかったので、その後は適切なルートを使用する予定であるため、キャッチオールを一番下に置いてしまいました。それでも答えてください。 –

関連する問題