在MVC控制器操作中获取POST请求的主体

Joh*_*sky 6 asp.net-mvc asp.net-mvc-4

我有一个WebJob,它将JSON对象发布到我的MVC网站中的控制器.

默认的ModelBinder在此实例中无法正常工作.我很乐意自己处理序列化,而不是对活页夹进行故障排除.

如何从我的控制器Action获取POST请求的主体,以便我可以将其提供给JSON.net?

我尝试在Request.InputStream上使用StreamReader,但是我得到一个空字符串.

ajz*_*fer 9

我正在使用Angular.js $ http.Post()将json对象发送到我的actionresult,并且Model Binding失败了.我使用下面的代码,并能够发布json对象,然后使用Newtonsoft进行DeSerialization.有趣的是,在MVC中默认的模型绑定时,Newtonsoft没有在反序列化上抛出错误.

 var req = Request.InputStream;
 var json = new StreamReader(req).ReadToEnd();
 var result = JsonConvert.DeserializeObject<Model>(json); 
Run Code Online (Sandbox Code Playgroud)