Asp.net mvc 模型绑定器可以进行存储库查找吗?

Asp.net mvc 模型绑定器可以进行存储库查找吗?,asp.net-mvc,modelbinders,Asp.net Mvc,Modelbinders,我正在构建一个MVC应用程序,并且正在为一个类设计一个定制的模型绑定器;基本上,模型的一个字段是数据库中存在的对象,但事实证明,很难将其与HTML中的适当对象相关联。(由于选择列表只允许我选择一个int/string字段,因此我确实无法将“object”存储为选择列表的“value”) 我曾考虑使用存储在选择列表中的Id在我的模型绑定器中查找数据库中的对象,但我的一位同事告诉我,这通常不是一个好主意。这是真的吗?如果是,我还有什么其他选择?似乎是一个主观问题,但我认为在活页夹中调用存储库是可以接

我正在构建一个MVC应用程序,并且正在为一个类设计一个定制的模型绑定器;基本上,模型的一个字段是数据库中存在的对象,但事实证明,很难将其与HTML中的适当对象相关联。(由于选择列表只允许我选择一个int/string字段,因此我确实无法将“object”存储为选择列表的“value”)


我曾考虑使用存储在选择列表中的Id在我的模型绑定器中查找数据库中的对象,但我的一位同事告诉我,这通常不是一个好主意。这是真的吗?如果是,我还有什么其他选择?

似乎是一个主观问题,但我认为在活页夹中调用存储库是可以接受的。我的备份是一本好书。他们有一小段关于模型装订的内容。下面的引文讨论了在活页夹中调用数据库的想法(重点添加):

大多数时候,这种行为 参数是的主键 对象或其他唯一标识符, 因此,与其重复这一点 我们所有行动中的数据访问代码, 我们可以使用定制的模型活页夹 是否可以在加载之前加载存储的对象 行动已执行。我们的行动可以 然后将持久化对象类型作为 一个参数,而不是唯一的 标识符


如果您认为模型绑定器的整个要点是将您的视图映射到基础域模型,那么这是有意义的。他们的示例代码还演示了活页夹中的存储库调用。

您的同事是否说这是个坏主意?他们说这违反了MVC“关注点分离”思想的“规则”。谢谢。这有点帮助。我知道该怎么做,但知道其他人也在实践,这就更容易证明这一点。我的同事声称这是一种“糟糕的做法”,会使代码更难维护(我不太理解……因为它会使代码更容易维护),那么在自定义模型绑定器中进行依赖项注入呢?我认为这是不可能的,是吗?您可以为此在mvc3中调用dependencyresolver