bindmodel vs createmodel asp mvc 3

min*_*iya 3 controller defaultmodelbinder model-binding modelbinder asp.net-mvc-3

我正在开发我在Asp中的第一个应用程序.我正在使用环境Asp.NET MVC 3.我有一个控制器Action,它有一个参数.此参数的类型是复杂对象.

public ActionResult MyAction(ComplexObj obj) {
    //TODO: using obj
}
Run Code Online (Sandbox Code Playgroud)

我正在使用ModelBinder类.但我不确定是否应该覆盖BindModel函数或CreateModel函数.

这两个函数之间的区别是什么,当它们被rooter使用时.

谢谢 !

VJA*_*JAI 6

这两个函数之间的区别是什么,当它们被rooter使用时.

BindModel是完成模型绑定过程中所有工作的主要方法,也是调用CreateModel方法根据传递的类型提供模型实例的方法.该CreateModel方法检查该模型类型是否是一个dictionarylist或一个简单的模型,最后通过调用返回一个实例,

Activator.CreateInstance(typeToCreate);
Run Code Online (Sandbox Code Playgroud)

通常你必须去覆盖这个BindModel方法,除非你说你的要求,否则很难说哪一个要覆盖.如果你关心的只是覆盖模型实例的创建方式,那么你必须去做CreateModel.