[WebAPI测试,邮递员不致电邮递

问题描述 投票:0回答:1

我在控制器上有一个帖子,我不能用post来调用,也看不到我做错了什么。

 [RoutePrefix("api/camps")]
 public class CampsController : ApiController

  [Route()]
  public async Task<IHttpActionResult> Get()
  {
      //Return list
  }


  [Route()]
  public IHttpActionResult Post(object model)
  {
       throw new NotImplementedException();
  }

[当我在Visual Studio中运行该应用程序并在Postman中用http://localhost:6600/api/camps我得到了期望的列表,当插入断点时,一切都会达到预期。

当我在正文中输入http://localhost:6600/api/camps并在邮递员中输入Raw时,我输入了。

{

    "Name": "Mr A",
}

我收到了post方法,但是类型为object的模型为空。如果我将模型更改为camp类型,则每个属性都为null。我已经改变了所有情况,并添加和删除了双引号和单引号。

我的WebApiConfig

 public static class WebApiConfig
  {
    public static void Register(HttpConfiguration config)
    {     

        //Changes names on result to be camel case not what they are in the model.
        config.Formatters.JsonFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();

        //For binding to models when passing in data
      config.Formatters.JsonFormatter.SupportedMediaTypes.Add(new MediaTypeHeaderValue("text/plain"));

        // Web API routes
        config.MapHttpAttributeRoutes();


}
asp.net-web-api asp.net-web-api2 postman
1个回答
0
投票

使用所需的属性创建一个类,如下所示:

public class Your_Class
    {
        public string Name { get; set; }
        //...Your other properties if any

    }

现在您的API中将此模型类用作参数。

  [Route()]
  public IHttpActionResult Post(Your_Class model)
  {
       throw new NotImplementedException();
  }

此外,对于Post请求,您还应使用装饰器作为[HttpPost]

© www.soinside.com 2019 - 2024. All rights reserved.