1

私が取り組んでいるプロジェクトには、会社があります。企業には連絡先と施設があります。ビジネスルールに基づいて、連絡先または施設にアクセスする会社を選択するフローです。

編集: エンティティは、企業、施設、連絡先です。

各エンティティには独自のワークフローがあるため、コード内にすべてのエンティティに1つのAREAがあります。ルーティングURLが次のようになることを確認するためのクリーンな方法は何でしょうか。

/ Company / 1234 / contact / 456

/会社/1234/施設/679

次の領域に進む方法があれば、それは良い方法のように見えますが、コードが乱雑になる可能性があります。

4

1 に答える 1

2

エリアを使う必要はないと思います

エンジンを支援するために、各「サブコントローラー」のglobal.asaxでルートを定義することにより、必要なことを実行できます。(私はそれを仮定しContactFacilityは別controllersですか?)

どのパターンがどのルートに行くかについて非常に具体的にすることを意味しますが、以下はあなたが必要とすることをするだろうと思います。

次の2つの新しいルートをグローバルasaxに追加します(デフォルトルートの上)。

        routes.MapRoute(
        "ContactRoute", // Route name
        "Company/{id}/Contact/{action}/{contactId}", // URL with parameters
        new { controller = "Contact", action = "Index"
        } // Parameter defaults
        );

        routes.MapRoute(
        "FacilityRoute", // Route name
        "Company/{id}/Facility/{action}/{facilityId}", // URL with parameters
        new { controller = "Facility", action = "Index"
        } // Parameter defaults
        );

私はコードに100%取り組んでいないので、contactIdfacilityIdをオプションとして定義する必要があるかもしれませんが、それがあなたにアイデアを与えることを願っていますか?

于 2011-09-20T12:48:32.077 に答える