1

私がカーポータルに取り組んでいるとしましょう。新しい車を検索するために、ユーザーは次の情報を提供します。

  • ブランド
  • モデル
  • ModelVersion
  • 燃料タイプ
  • バジェット

ビジネスルール:

  1. ユーザーがブランドのみを選択した場合:選択したブランドのすべてのモデルを含むブランドリストページを表示します
  2. ユーザーがブランドとモデルを選択した場合:モデルリストページを表示
  3. ユーザーがブランド+モデル+モデルバージョンを選択した場合:モデルバージョンの詳細ページを表示します。
  4. ユーザーが燃料タイプまたは予算を選択した場合:ブランドリストページを表示します。

これで、コントローラーとアクションを定義する2つのアプローチがあります。

アプローチ1:複数のアクションメソッドを持つ1つのコントローラークラス

Controller Class : CarSearchmanager
with following are Action Methods:
        - SearchNewCar(int Barnd,int Model.......)
          Depending on user selection this method will redirect control to following  
          action method:

        - BrandListing(int BrandID......)
        - ModelListing(int BrandID,intModelID.....)
        - ModelVersionDetails((int BrandID,intModelID,int ModelVersionID....)

アプローチ2:複数のコントローラークラス

Controller Class : CarSearchmanager

Following are Action Methods:
        - SearchNewCar(int Barnd,int Model.......)
          Depending on user selection this method will redirect control to following 
          controller action method:

Then I will have separate controller class and action method for each of the pages like 
bellow:

    - BrandListing
    - ModelListing
    - ModelVersionDetails

コントローラクラスとアクションメソッドを整理する方法について非常に混乱しています。ベストプラクティスの種類のドキュメントはありますか?私に提案してください。

4

2 に答える 2

1

定義された最良のバージョンはないと思います。より清潔で整理されていると感じるように定義してください。あなたの要件の私の理解から、私はこのように定義するかもしれません

ブランドコントローラー

アクションメソッド

  • ListForFuleAndBudget(string fuelType,string budget)
  • List(string brandName)

モデルコントローラー

アクションメソッド

  • List(string brand,string model)
  • Details(string brand, string model, string version)

アクションメソッド名をそのままにしたくないナイス URL が必要な場合 (ex :details)、global.asax にルートを登録するときに、一般的なルート定義の前にプリティ URL を定義できます。

routes.MapRoute("list", "model/{brand}/{model}",
               new { controller = "brand", action = "List");

routes.MapRoute("list", "model/{brand}/{model}/{version}",
               new { controller = "brand", action = "details");

//default route definition goes here

yoursitename/model/honda/camryユーザーをアクション メソッドに誘導し、ユーザーをlistアクション メソッド yoursitename/model/honda/camry/lxに誘導しますdetails

于 2012-10-13T16:57:33.003 に答える
0

私の提案は、これを同じコントローラーに入れることです。これは、同様のコンテキストで使用される検索機能であるためです。メソッドのオーバーロードを使用し、対応するメソッドで特定のビューを返します。

于 2012-10-13T16:00:40.390 に答える