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