3

我正在开发我在Asp中的第一个应用程序。我正在使用环境Asp.NET MVC 3. 我有一个控制器具有单个参数的操作。该参数的类型是一个复杂的对象。bindmodel vs createmodel asp mvc 3

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

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

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

谢谢!

+0

为什么你想要一个自定义模型联编程序? – VJAI

回答

6

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

BindModel是做模型的结合过程中的所有工作,在路上,它调用CreateModel方法来提供基于传递类型模型的实例的主要方法。该CreateModel方法检查的模式类型无论是dictionarylist或一个简单的模型,最后通过调用返回一个实例,

Activator.CreateInstance(typeToCreate); 

通常你必须去重写BindModel方法,除非你说你的要求,这是难以说出哪一个要重写。如果你所关心的只是重写模型实例的创建方式,那么你必须去寻找CreateModel

+1

想你的答案。我试着用“F11”进入方法BindModel。这是不可能的,因为我没有执行。你可以理解我是C#中的一个begginer: - /我如何通过我自己发现这些有用的信息(CreateModel由BindModel调用)? – minchiya