1

これは、MVC 1および2に適用される一般的なモデルバインディングの質問です。MVC2がこれに適しているかどうか疑問に思っていますが、ここに私の質問があります。

私はかなり複雑なモデルを持っています:

public interface IEvent
  public int Id
  public string Title
  public List<EventContact> Contacts
  public List<EventDatesLocations> DatesLocations

public class EventDatesLocations
  public int Id
  public DateTime StartDate
  public DateTime EndDate
  public List<EventLocation> Locations

IEventクラスのカスタムモデルバインダーがあり、基本的にIEventのすべてのバインディングを実行します。リストをバインドするためのデフォルトのモデルバインダーを呼び出しますContacts。これはうまく機能します。

私はDatesLocationsものをバインドしようとする準備ができていますが、私は物事を正しく行っていることを確認したいと思います。

全体として、モデルバインディングの詳細をすべて理解できるかどうかはわかりません。内のリストに複数のモデルバインダーを使用するか、 (現在行っているように)必要なリストのデフォルトバインダーを呼び出すモデルバインダーIEventを1つだけ使用する方がよいでしょうか。IEvent

専門家はどのようにそれを行いますか?:P

4

1 に答える 1

0

この質問を見て、ネストされたモデルのバインディングを確認してください。

この質問に戻ると、IEventのさまざまな実装でバインドを行う必要があると述べていますが、IEventを実装するタイプに応じて特定のプロパティをバインドする必要があります。これは一般的に悪いことだと思います。なんで?1つのモデルバインダーに、その特定の実装について知っているインターフェイスについて知ってもらいたいからです。

IEventを実装するために複数のクラスが必要な場合(何らかの理由で)、それぞれにカスタムバインダーが必要になる可能性があります(具体的なタイプになるため、デフォルトのバインダーが機能するはずですが、このルートを進む場合)、またはすべてに設定するプロパティを含めるためのIEventインターフェイス。

インターフェースは、実装する必要のあるコントラクトを定義するためにあることを忘れないでください...それを実装するオブジェクトを操作して、それらがどのタイプであるかに応じて他のプロパティをチェックすることはできません:-)

于 2010-09-23T15:41:07.123 に答える