4

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

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

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

这两个功能之间有什么区别以及它们何时被rooter完全使用。

谢谢 !

4

1 回答 1

6

这两个功能之间有什么区别以及它们何时被rooter完全使用。

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

Activator.CreateInstance(typeToCreate);

通常您必须重写该BindModel方法,除非您说出您的要求,否则很难说出要重写哪个方法。如果您只关心覆盖模型实例的创建方式,那么您必须选择CreateModel.

于 2012-06-23T16:14:53.423 回答