自从升级到 RC for WebAPI 后,我在我的 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,
[FromBody]
更新:官方 ASP.NET 网站今天更新了一个很好的解释:https ://docs.microsoft.com/en-us/aspnet/web- api/overview/advanced/sending-html-form-data-part- 1
简而言之,当在正文中发送单个简单类型时,只发送以等号 (=) 为前缀的值,例如正文:
=test