web api 2 POST方法不允许使用405方法

时间:2015-11-18 17:00:03

标签: asp.net .net asp.net-web-api asp.net-web-api2

我使用空项目模板和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 }
        );
    }

1 个答案:

答案 0 :(得分:3)

您的POST期望查询字符串中的参数 - payload。没有这个参数,它正在寻找未定义的Post()函数,因此你得到405错误。