一尘不染

Post参数始终为null

c#

自从为WebAPI升级到RC以来,在WebAPI上调用POST时遇到了一些真正的奇怪问题。我什至回到了在新项目上生成的基本版本。所以:

public void Post(string value)
{
}

并从Fiddler致电:

Header:
User-Agent: Fiddler
Host: localhost:60725
Content-Type: application/json
Content-Length: 29

Body:
{
    "value": "test"
}

当我调试时,永远不会将字符串“值”分配给它。始终为NULL。有人遇到这个问题吗?

(我首先看到了一个更复杂的类型的问题)

该问题不仅与ASP.NET MVC 4有关,在RC安装后,对于新的ASP.NET MVC 3项目也会发生相同的问题


阅读 335

收藏
2020-05-19

共1个答案

一尘不染

由于您只有一个参数,因此可以尝试用[FromBody]属性来修饰它,或者更改方法以接受具有值作为属性的DTO,如我在此处建议的那样:MVC4 RC
WebApi参数绑定

更新:官方的ASP.NET网站今天进行了更新,并提供了很好的解释:https :
//docs.microsoft.com/zh-cn/aspnet/web-api/overview/advanced/sending-html-
form-data-part- 1个

简而言之,在正文中发送单个简单类型时,仅发送以等号(=)为前缀的值,例如body:

=test

2020-05-19