asp.net mvc如何将发布数据转换为模型?

时间:2013-05-30 14:20:36

标签: asp.net-mvc model-view-controller asp.net-mvc-4

我正在从MVC区域之外的项目中提取一些代码到HttpHandler,同时重用尽可能多的代码。

为了方便起见,我想将发布的数据转换为已在Controller中使用的相同模型。

所以,现在我正在寻找逻辑MVC在封面下使用神奇地将发布的数据转换为模型,但经过几次反编译尝试后我无法找到它。

有人能指出我正确的方向吗?

谢谢!

  

SaphuA:基本上,我想输入HttpContext和目标Model的类型,并让helper方法完成映射的其余部分。

2 个答案:

答案 0 :(得分:3)

正如Eric所说,只是扩展DefaultModelBinder.cs

默认模型绑定器为here

controller action invoker

调用模型绑定器

整体流程很好地概述here所以只需滚动查看控制器动作调用者的调用位置。

如果您想围绕绑定器的实现启动一些单元测试,请查看MVC源tests

使用github镜像因为codeplex不支持行号链接: - )

HTH

答案 1 :(得分:1)

我认为this article解释得非常好。

简而言之,有一个DefaultModelBinder类来处理POST数据到模型对象的转换。如果您愿意,可以通过扩展或实现IModelBinder然后在Application_Start方法中使用MVC注册模型绑定器来替换您自己的模型绑定器。