我使用空项目模板和Web API文件夹结构(WebAPI 2
)创建了最简单的Visual Studio 2013
应用程序。并且无法按要求提出工作。
这是我的控制器
public class XmlFileController : ApiController
{
public IHttpActionResult Post(string payload)
{
return Ok();
}
public string Get()
{
return "Hello world";
}
}
我没有改变路线或任何东西。根据我的理解,路由应按名称约定进行。
致电GET http://localhost:51356/api/XmlFile
时,我会回来Status 200 OK
。
使用字符串有效负载和POST http://localhost:51356/api/XmlFile
调用Content-Type text/plain
时,我回来了Status 405 Method Not Allowed
。
我在这里缺少什么?感谢。
更新:路由配置如下:
public static void Register(HttpConfiguration config)
{
// Web API configuration and services
// Web API routes
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
答案 0 :(得分:3)
您的POST期望查询字符串中的参数 - payload
。没有这个参数,它正在寻找未定义的Post()函数,因此你得到405错误。