【问题标题】:Asp.Net core modelbinder null value when POSTPOST时的Asp.Net核心modelbinder空值
【发布时间】:2017-07-08 11:56:12
【问题描述】:

我在 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 个动作中的额外开销。任何全球性的地方我都可以添加这个东西来让它开心吗?

谢谢!

【问题讨论】:

  • 你能发布你的代码,你是如何传递/调用你的 SignUp() 方法的吗?

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


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-12
    • 2016-11-27
    • 2023-01-25
    • 2019-07-29
    • 2017-06-03
    • 2017-10-23
    • 2020-11-09
    相关资源
    最近更新 更多