繁体   English   中英

Web API POST - 找不到404

[英]Web API POST - 404 Not Found

在我的VS2013 Web应用程序中,我有许多这样的控制器:

[Route("Test/{param1}")]
public bool Test (Int32 Param1)
{   
  return true;  
}

我从我的客户端调用该方法:

response = await client.GetAsync("TestCtrlClass/Test/1");

一切都很好

现在,我需要将一个对象传递给方法,所以我把它放在:

[HttpPost]
[Route("Test2/{item}")]
public bool Test2([FromBody] ClassName item)
{
     return true;       
}

我从我的客户端调用该方法:

HttpClient client = new HttpClient();
client.BaseAddress = ServerUri;
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

MediaTypeFormatter jsonFormatter = new JsonMediaTypeFormatter();
HttpContent content = new ObjectContent<ClassName>(Item, jsonFormatter);
response = await client.PostAsync("TestCtrlClass/Test2", content);

我得到404 NOT FOUND

这是我的路线配置:

routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapMvcAttributeRoutes();

为什么?

谢谢。

请注意,您正在发送包含正文中的参数的POST请求。 这意味着您要发布的URl是TestCtrlClass/Test2 ,而不是TestCtrlClass/Test2/anything_here 所以你的属性应该是:

[HttpPost]
[Route("Test2")]
public bool Test2([FromBody] ClassName item)

我也相信这里不需要[FromBody]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM