POST时的Asp.Net核心modelbinder空值

时间:2017-07-08 03:25:20

标签: c# asp.net rest asp.net-web-api asp.net-core

我在Controller中有我的行动:

[HttpPost]
public JsonResult SignUp(DTOUser dtoUser)
{
    return Json(new string[] { "value1", "value2" } );          
}

我在Startup.cs

中配置了格式化程序
 services.AddMvcCore(options => {
                options.InputFormatters.Insert(0, new JilInputFormatter());
                options.OutputFormatters.Insert(0, new JilOutputFormatter());
            });

这里的问题是我的dtoUser包含所有变量null,直到我指定[FromBody]

为什么我每次都必须指定FromBody。这在Asp.Net 4旧版本中从未被要求过。

如何解决此问题。这只是在我将要开发的项目中添加FromBody到100多个操作的额外开销。在任何全球的地方,我可以添加这个东西以保持它的快乐吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

更改为处理跨站点请求伪造(CSRF)问题。如果您没有指定[FromBody],它将不会自动绑定到正文中传递的参数。

Andrew Lock在这个主题上发表了一篇很棒的帖子:https://andrewlock.net/model-binding-json-posts-in-asp-net-core/