我有一个 WebJob 将 JSON 对象发布到我的 MVC 网站中的 Controller 。
在这种情况下,默认的 ModelBinder 无法正常工作。我非常乐意自己处理序列化,而不是对活页夹进行故障排除。
如何从 Controller Action 获取 POST 请求的主体,以便将其输入 JSON.net?
我曾尝试在 Request.InputStream 上使用 StreamReader,但我得到一个空字符串。
最佳答案
我正在使用 Angular.js $http.Post() 将 json 对象发送到我的操作结果,并且模型绑定(bind)失败。我使用了下面的代码并且能够获取发布的 json 对象,然后使用 Newtonsoft 进行反序列化。有趣的是,Newtonsoft 没有在反序列化上抛出错误,而 MVC 中的默认模型绑定(bind)却抛出了错误。
var req = Request.InputStream;
var json = new StreamReader(req).ReadToEnd();
var result = JsonConvert.DeserializeObject<Model>(json);
关于asp.net-mvc - 在 MVC Controller 操作中获取 POST 请求的正文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28869053/