asp.net - Web API 2 POST 方法不允许使用 405 方法

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

我使用空项目模板和 Web API 文件夹结构(在 Visual Studio 2013 中)创建了最简单的 WebAPI 2 应用程序。并且无法发出工作岗位请求。

这是我的 Controller

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方法不允许

我在这里错过了什么?谢谢。

更新:路由配置如下:

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 }
        );
    }

最佳答案

您的 POST 需要查询字符串中的参数 - payload。如果没有此参数,它会寻找未定义的 Post() 函数,因此您会收到 405 错误。

关于asp.net - Web API 2 POST 方法不允许使用 405 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33785984/

相关文章:

c# - 获取 Windows 应用程序和 ASP.NET 应用程序的应用程序路径的统一方法

encryption - jwt Web token 应该加密吗?

.net - 分层架构设计中的装配分离

c# - 如何在 C# 中匹配两个列表的项目?

c# - Web API 发布反序列化 json 结果但所有属性为空

c# - 以异步方式调用同步方法?

asp.net - 停止执行页面

.net - ASP.net 3.0 的 MVC 框架?

css - 添加 runat=server 导致 css 不被应用

c# - Entity Framework : Unrecognized element 'providers' exception