Asp.net mvc asp.net mvc如何将post数据转换为模型?

Asp.net mvc asp.net mvc如何将post数据转换为模型?,asp.net-mvc,model-view-controller,asp.net-mvc-4,Asp.net Mvc,Model View Controller,Asp.net Mvc 4,我将从MVC区域之外的项目中提取一些代码到HttpHandler,同时尽可能地重用代码 为了简化操作,我想将发布的数据转换为控制器中已经使用的相同模型 因此,现在我正在寻找MVC在幕后使用的逻辑,它可以神奇地将发布的数据转换为模型,但在多次反编译尝试后,我找不到这个逻辑 谁能给我指一下正确的方向吗 谢谢 基本上,我想输入HttpContext和目标模型的类型,并让helper方法完成其余的映射 我想这解释得很好 简而言之,有一个DefaultModelBinder类处理POST数据到模型对象的转

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

为了简化操作,我想将发布的数据转换为控制器中已经使用的相同模型

因此,现在我正在寻找MVC在幕后使用的逻辑,它可以神奇地将发布的数据转换为模型,但在多次反编译尝试后,我找不到这个逻辑

谁能给我指一下正确的方向吗

谢谢

基本上,我想输入HttpContext和目标模型的类型,并让helper方法完成其余的映射

我想这解释得很好

简而言之,有一个
DefaultModelBinder
类处理POST数据到模型对象的转换。如果您愿意,您甚至可以通过扩展或实现
IModelBinder
,然后在您的应用程序启动方法中向MVC注册您的模型绑定器,将其替换为您自己的模型绑定器。

我认为可以很好地解释这一点


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

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

默认的模型绑定器是

从中调用模型绑定器

整个流程的轮廓很好,所以只需滚动查看调用控制器操作调用器的位置

如果您想围绕绑定器的实现加速一些单元测试,请查看MVC源代码

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


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

默认的模型绑定器是

从中调用模型绑定器

整个流程的轮廓很好,所以只需滚动查看调用控制器操作调用器的位置

如果您想围绕绑定器的实现加速一些单元测试,请查看MVC源代码

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


谢谢。虽然内容丰富,但这篇文章似乎只解释了如何创建自定义ModelBinder和手动映射发布的数据。我想使用的是MVC中的神奇的一款,它可以自动完成这项任务。基本上,我想输入HttpContext和目标模型的类型,并让helper方法完成其余的映射。@SaphuA-在这种情况下,您可以创建一个扩展DefaultModelBinder的类,并调用基类方法进行转换。不过,您可能需要模拟ControllerContext和ModelBindingContext。谢谢。虽然内容丰富,但这篇文章似乎只解释了如何创建自定义ModelBinder和手动映射发布的数据。我想使用的是MVC中的神奇的一款,它可以自动完成这项任务。基本上,我想输入HttpContext和目标模型的类型,并让helper方法完成其余的映射。@SaphuA-在这种情况下,您可以创建一个扩展DefaultModelBinder的类,并调用基类方法进行转换。不过,您可能需要模拟ControllerContext和ModelBindingContext。