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

时间:2015-03-05 02:37:53

标签: asp.net-mvc asp.net-mvc-4

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

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

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

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

1 个答案:

答案 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);