我正在从 MVC 区域之外的项目中提取一些代码到 HttpHandler,同时尽可能多地重用代码。
为方便起见,我想将发布的数据转换为已在控制器中使用的相同模型。
所以,现在我正在寻找 MVC 在幕后使用的逻辑,以将发布的数据神奇地转换为模型,但经过几次反编译尝试后,我无法找到它。
谁能指出我正确的方向?
谢谢!
SaphuA:基本上,我想输入 HttpContext 和目标模型的类型,然后让辅助方法完成其余的映射。
我正在从 MVC 区域之外的项目中提取一些代码到 HttpHandler,同时尽可能多地重用代码。
为方便起见,我想将发布的数据转换为已在控制器中使用的相同模型。
所以,现在我正在寻找 MVC 在幕后使用的逻辑,以将发布的数据神奇地转换为模型,但经过几次反编译尝试后,我无法找到它。
谁能指出我正确的方向?
谢谢!
SaphuA:基本上,我想输入 HttpContext 和目标模型的类型,然后让辅助方法完成其余的映射。
我认为这篇文章很好地解释了它。
简而言之,有一个DefaultModelBinder
类处理 POST 数据到模型对象的转换。如果您愿意,您甚至可以用您自己的模型绑定器替换该模型绑定器,方法是扩展它或实现,IModelBinder
然后在 Application_Start 方法中使用 MVC 注册模型绑定器。