小编典典

Post 参数始终为空

all

自从升级到 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 项目也会出现同样的问题


阅读 64

收藏
2022-06-20

共1个答案

小编典典

由于您只有一个参数,您可以尝试使用[FromBody]属性来装饰它,或者更改方法以接受具有值作为属性的 DTO,

更新:官方 ASP.NET 网站今天更新了一个很好的解释:https ://docs.microsoft.com/en-us/aspnet/web-
api/overview/advanced/sending-html-form-data-part-
1

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

=test

2022-06-20