首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >405消息,Web Api不允许使用的方法

405消息,Web Api不允许使用的方法
EN

Stack Overflow用户
提问于 2012-10-10 03:45:56
回答 5查看 32.1K关注 0票数 17

我在一个API控制器上获得了以下内容:

public void UpdateClient(Client client)
    {
        try
        {
            if (ModelState.IsValid)
            {
                db.Entry(client).State = EntityState.Modified;
                db.SaveChanges();
            }
        }
        catch
        {
            throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.NotFound));
        }
    }

以及页面上的以下内容:

$.ajax({
            url: "api/client/UpdateClient",
            type: "PUT",
            contentType: 'json',
            data: ko.toJSON(model.selectedClient()),
            success: function (result) {
                getClients();
                $("#loader").hide();
            },
            failure: function (result) {
                alert(result.d);
                $("#loader").hide();
            },
            error: function (XMLHttpRequest, textStatus, errorThrown) {
                alert("An error occurred, please try again.");
                $("#loader").hide();
            }
        });

但是这给出了错误405方法是不允许的,有人能看到我哪里出错了吗?作为参考,api的url是ok的,因为我也使用相同的api控制器来实现其他功能。

此外,selectedClient()是通过WebApi接收的客户端对象,因此应该完全匹配才能重新提交。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-10-10 04:44:28

看起来这两行是错的,我按如下方式修改了它们:

contentType: 'application/json',
data: "{client: " + ko.toJSON(model.selectedClient()) + "}",

现在可以进去了。

票数 2
EN

Stack Overflow用户

发布于 2012-11-29 15:17:14

如果您正在使用IIS7并安装了WebDav,请尝试删除它。我得到了同样的错误,只有PUT动词,它解决了问题

更新:您可以在此处阅读有关WebDav的信息:http://www.iis.net/learn/get-started/whats-new-in-iis-7/what39s-new-for-webdav-and-iis-7

票数 23
EN

Stack Overflow用户

发布于 2012-10-10 04:45:31

您的UpdateClient操作是否具有HttpPut属性?另外,您是否有接受{ routeTemplate }作为操作的路由?例如:

config.Routes.MapHttpRoute(
    name: "DefaultApi",
    routeTemplate: "api/{controller}/{action}/{id}",
    defaults: new { id = RouteParameter.Optional }
);

还有一件事,尝试在ajax代码中为content-type使用'application/json‘,而不是'json’。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12807331

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档