我正在用Asp开发我的第一个应用程序。我正在使用 MVC 3 Asp.NET 环境。我有一个具有单个参数的控制器操作。此参数的类型是一个复杂对象。
public ActionResult MyAction(ComplexObj obj) {
//TODO: using obj
}
我正在使用ModelBinder类。但我不确定我是否应该覆盖 BindModel 函数或 CreateModel 函数。
这两个函数之间有什么区别,以及当根服务器准确使用它们时。
谢谢!
这两个函数之间有什么区别,它们何时是 由生根者精确使用。
BindModel
是执行模型绑定过程中所有工作的主要方法,它调用 CreateModel
方法以提供基于传递类型的模型实例。CreateModel
方法检查模型类型是dictionary
还是list
还是简单模型,最后通过调用
Activator.CreateInstance(typeToCreate);
通常你必须去覆盖BindModel
方法,除非你说出你的要求,否则很难说出要覆盖哪一个。如果您只关心覆盖模型实例的创建方式,那么您必须选择CreateModel
。