0

全部,

首先,我知道类似的问题已经被问过无数次了。其次,我没有 50 分(?!)来评论其中任何一个。第三,我不能使用“答案”来澄清我对这些帖子的问题 - 我收到警告,我将被禁止在未来回答任何问题。

于是只好再问。我已经尝试了所有可能的编码——全部 5 种,但我总是为下面的控制器的字符串 Post Body 得到一个 NULL。我正在使用 Swagger 进行测试。

public class AmcoController : ApiController
{
    // GET: api/Amco?name=Blah
    public Amco Get(string name)
    {
        return Amco(name);
    }

    // POST: api/Amco
    public void Post([FromBody]string value)
    {
        System.Diagnostics.Debug.WriteLine("Request Body --> " + value);
    }

    // PUT: api/Amco?name=Blah
    public void Patch(string name, [FromBody]string value)
    {
    }

    // DELETE: api/Amco?name=Blah
    public void Delete(String name)
    {
    }
}

得到工作正常。不知道发生了什么。欣赏是否有人可以复制/粘贴和测试并告诉我。使用 VS 2017

4

1 回答 1

1

我不知道为什么 swagger 不从正文中获取单个字符串值,但是您可以执行以下解决方法:

在此处输入图像描述

更改您的代码以接受您的 Amco 对象(我认为这也是发布请求的常见情况)。

在此之后,swagger ui 应该看起来像这样,并且请求工作正常。

在此处输入图像描述

希望这会有所帮助,快乐的编码!

于 2018-10-04T12:20:44.840 回答