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



我有一个WebJob,它正在向MVC网站中的控制器发布JSON对象。

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

如何从控制器Action获取POST请求的主体,以便将其输入到JSON.net?

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

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

 var req = Request.InputStream;
 var json = new StreamReader(req).ReadToEnd();
 var result = JsonConvert.DeserializeObject<Model>(json); 

最新更新