私はちょうど「ああ、ハァッ!」に行く寸前です。ドメイン駆動設計のコーディングに関しては。問題は、エンティティ、値オブジェクト、およびいくつかの追加フィールドを含むMVCActionMethodパラメータークラスをどこでどのように定義するかです。 エンティティクラスと値オブジェクトクラスは、私のリポジトリで定義されています。
私は:
- 他のクラスを実装するリポジトリにカスタムクラスを作成し(単一のクラスですべてのプロパティを取得するため)、追加のフィールドにさらにいくつかのプロパティを追加しますか?
- リポジトリにエンティティ/値オブジェクトのpocoクラスを作成し、コントローラークラスでこれらのオブジェクトを参照する複合クラスを作成してから、これをActionMethodパラメータータイプとして使用しますか?
- 他に何かありますか?
リクエストフォームには、いくつかの顧客クラスフィールド、郵送先住所、および彼らが私たちを見つけた方法などのいくつかのフォームの詳細が収集されます。内容は重要ではなく、複数のポコからの情報を保持しているだけです。
MVCは、投稿されたフォームのフィールドを、次のようにActionMethodパラメーターのPocoのプロパティと一致させることを知っています。
[AcceptVerbs(HttpVerbs.Get)]
public ActionResult RequestCatalog()
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult RequestCatalog(Customer customer)
したがって、customer.firstNameは、投稿されたフォームのfirstNameに自動的にバインドされます。
私は次のものを持っています:
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult RequestCatalog(string fname, string lname, string address,
string city, string state, string zip, string phone, string howTheyFoundUs)
しかし、次のようなものが必要です。
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult RequestCatalog( RequestForm requestForm)
何かご意見は?