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还是只有一个IEvent模型绑定器(就像我现在正在做的那样)调用它需要的列表的默认绑定器。

专家是怎么做的?:P

4

1 回答 1

0

看看这个问题,看看一些嵌套模型绑定。

回到这个问题,您提到您需要对 IEvent 的不同实现进行一些绑定,但是您希望根据实现 IEvent 的类型来绑定特定的属性。我会说这通常很糟糕。为什么?因为您正试图让一个模型绑定器了解接口,了解它的特定实现。

如果您需要多个类来实现 IEvent(出于某种原因),那么您可能需要为每个类自定义绑定器(如果沿着这条路线走,尽管它们将是具体类型,那么默认绑定器应该可以工作),或者您需要扩展IEvent 接口包含您将设置的所有属性。

记住接口是用来定义需要实现的契约......你不能使用实现它的对象,然后根据它们的类型检查其他属性:-)

于 2010-09-23T15:41:07.123 回答