bindmodel vs createmodel asp mvc 3

时间:2012-06-23 15:40:00

标签: asp.net-mvc-3 controller model-binding defaultmodelbinder modelbinder

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

public ActionResult MyAction(ComplexObj obj) {
    //TODO: using obj
}

我正在使用ModelBinder类。但我不确定是否应该覆盖 BindModel 功能或 CreateModel 功能。

这两个函数之间的区别是什么,以及它们是否被rooter使用时。

谢谢!

1 个答案:

答案 0 :(得分:6)

  

这两个功能之间的区别是什么?   由rooter exactely使用。

BindModel是完成模型绑定过程中所有工作的主要方法,也是调用CreateModel方法根据传递的类型提供模型实例的方法。 CreateModel方法检查模型类型是dictionary还是list还是简单模型,最后通过调用返回实例,

Activator.CreateInstance(typeToCreate);

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