我有一个WebJob,它将JSON对象发布到我的MVC网站中的控制器。
默认的ModelBinder在此实例中无法正常工作。我很乐意自己处理序列化,而不是对活页夹进行故障排除。
如何从我的控制器Action获取POST请求的主体,以便我可以将其提供给JSON.net?
我尝试在Request.InputStream上使用StreamReader,但是我得到一个空字符串。
答案 0 :(得分:8)
我正在使用Angular.js $ http.Post()将json对象发送到我的actionresult,而模型绑定失败了。我使用下面的代码,并能够发布json对象,然后使用Newtonsoft进行DeSerialization。有趣的是,在MVC中默认的模型绑定时,Newtonsoft没有在反序列化上抛出错误。
var req = Request.InputStream;
var json = new StreamReader(req).ReadToEnd();
var result = JsonConvert.DeserializeObject<Model>(json);