我使用空项目模板和Web API文件夹结构(在Visual Studio 2013中)创建了最简单的WebAPI 2应用程序。但无法使POST请求工作。
这是我的控制器:
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
。当使用字符串有效载荷和
Content-Type text/plain
调用POST http://localhost:51356/api/XmlFile
时,我会收到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 }
);
}
public IHttpActionResult Post([FormBody] string payload)
。 - mimo