自从为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项目也会发生相同的问题
由于您只有一个参数,因此可以尝试用[FromBody]属性来修饰它,或者更改方法以接受具有值作为属性的DTO,如我在此处建议的那样:MVC4 RC WebApi参数绑定
[FromBody]
更新:官方的ASP.NET网站今天进行了更新,并提供了很好的解释:https : //docs.microsoft.com/zh-cn/aspnet/web-api/overview/advanced/sending-html- form-data-part- 1个
简而言之,在正文中发送单个简单类型时,仅发送以等号(=)为前缀的值,例如body:
=test