自从为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参数绑定
更新:官方ASP.NET网站今天进行了更新,并提供了很好的解释:https : //docs.microsoft.com/zh-cn/aspnet/web-api/overview/advanced/sending-html-form-data-part- 1个
简而言之,当在正文中发送单个简单类型时,仅发送以等号(=)为前缀的值,例如body:
=test
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句