我在控制器上有一个帖子,我不能用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();
}
使用所需的属性创建一个类,如下所示:
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]
。