asp.net-mvc - 在 MVC Controller 操作中获取 POST 请求的正文

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

我有一个 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/

相关文章:

asp.net-mvc - 设置cookie并验证后,User.Identity.IsAuthenticated返回false

c# - 在模型中绑定(bind)两个表 - ASP.NET MVC Razor

jquery - 将 jquery 添加到空 MVC 项目

javascript - 如何进行 AJAX 调用,以便仅在单击特定类中包含的链接并包含父元素的 "id"时触发?

asp.net-mvc - ASP.net mvc 页脚常用数据

javascript - BundleConfig 脚本不起作用

c# - 在 asp.net mvc 中返回错误的最佳做法是什么

c# - ValidateAntiForgeryToken 用途、解释和示例

asp.net-mvc - User.Identity.Name 全名 mvc5

jquery - 使用 AJAX 将 JSON 值绑定(bind)到下拉列表