1

アプリケーションがルートを処理する方法を大幅にカスタマイズしたいと考えています。基本的に、次のようなプロセスを実現したいと考えています。

  • ユーザーリクエスト URL: /custom-url-part-1/custom-url-part-2/gallery/1/date
  • アプリケーションは、ルートのデータベース テーブルで一致を検索します
  • アプリケーションは、以下で構成される一致するルート レコードを返します。
    • ルート URL
    • コントローラ
    • アクション
    • パラメーター
    • デフォルト
  • アプリケーションは RouteUrl を見て、オプションのパラメーター {pagenum}、{orderby} を解析します
  • アプリケーションは、これらが要求された URL で提供されているかどうかを確認します
  • それらが提供されていない場合は、Route レコードの「デフォルト」をチェックして取得します。
    • これらは RouteData デフォルトで渡されます
  • パラメーターは RouteData デフォルトで渡されます
  • ルートデータが返されます

これの主な理由は、ルートに対して特定のデータを保存するために CMS によって変更される、ルートの動的テーブルが必要なことです。

私が持っている質問は次のとおりです。

MVC が Uri をルートに一致させる方法を複製するにはどうすればよいですか? 基本的に、データベース テーブルを調べて、Uri に基づいて適切なルートを返す必要があります。標準の ASP.NET MVC 機能が RouteCollections を調べて正しいルートを使用する方法と非常によく似ています。

MVC が組み込みで提供するいくつかの機能を本質的に書き直し、RoutesCollection をデータベースに置き換えていることは理解していますが、2 つのことを達成するにはそれを行う必要があります。

  1. ルートは完全に動的で流動的で、CMS によって制御されます。
  2. Uri 自体からは推測できないルートに対して格納されているデータ (たとえば、ユーザーが特定のルートに到達したときに PageId を送信したいが、その PageId を Uri に含めたくない場合など)。
4

0 に答える 0