C# jqGrid-删除操作错误-“;错误状态:';方法不允许';。错误代码:405“;

C# jqGrid-删除操作错误-“;错误状态:';方法不允许';。错误代码:405“;,c#,asp.net-mvc-4,jqgrid,http-status-code-405,methodnotfound,C#,Asp.net Mvc 4,Jqgrid,Http Status Code 405,Methodnotfound,我正在用MVC4WebAPI创建一个jqGrid。我可以将数据填充到网格中,但单击“删除”按钮时出错。这是我的前端(htm)代码: 以下是删除请求的fiddler跟踪: DELETE http://localhost/WebApiOne/api/task/2 HTTP/1.1 Host: localhost Connection: keep-alive Accept: */* Origin: http://localhost X-Requested-With: XMLHttpRequest Us

我正在用MVC4WebAPI创建一个jqGrid。我可以将数据填充到网格中,但单击“删除”按钮时出错。这是我的前端(htm)代码:

以下是删除请求的fiddler跟踪:

DELETE http://localhost/WebApiOne/api/task/2 HTTP/1.1
Host: localhost
Connection: keep-alive
Accept: */*
Origin: http://localhost
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.93 Safari/537.36
Referer: http://localhost/WebApiOne/Views/JqGrid.htm
Accept-Encoding: gzip, deflate, sdch
Accept-Language: en-US,en;q=0.8
是错误的屏幕截图:


请提供所有建议:)。

我无法在计算机上重现该问题。无论如何,我相信您可以解决服务器端配置的问题。例如,描述关闭问题。您可能与IIS上安装的
WebDAV
存在冲突。本文建议在
行的
中添加include。例如,您可以修改
web.config



更新:如果上面的内容对您没有帮助,我建议您卸载WebDAV模块,以验证问题的原因是否真的是WebDAV。如果您不需要WebDAV,我建议您卸载该模块。如果您可能需要WebDAV,那么我建议您将问题发布到例如。如果卸载WebDAV解决了问题,则您可以确定,您仅在相应的IIS配置和WebDAV模块的使用方面存在问题,而网站的运行不需要这些问题。

我已将网站从IIS7中删除并安装在IIS Express上,问题已得到解决。为什么会有这样的行为?我尝试过回答中提到的改变,但这些改变对IIS7也不起作用。IIS Express适用于默认的
web.config
@SandeepKushwah:回答您的问题是不同的,因为这都是IIS的配置问题。您是否在IIS上安装了WebDAV?你需要它吗?您是否在网站上使用启用的“Windows身份验证”?您可以在站点的IIS配置中禁用WebDAV(单击“禁用WebDAV”,请参阅)。您使用的是哪种操作系统?@sandepkushwah:上一篇文章中还介绍了另一种方法。如果上面没有任何帮助,那么您可以通过临时卸载WebDAV来验证是否确实存在WebDAV问题。您能否至少安装此功能(请参阅)以验证它是否是问题的根源?我的操作系统是-
Windows7Ultimate
。我正在尝试您在评论中建议的所有更改。完成后,我将向您更新。仅卸载
WebDAV
修复了
IIS7
的问题。因此,请再发布一个说明WebDAV卸载的答案,以便我可以将其标记为问题的答案。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using System.Web.Mvc;

namespace WebApiOne.Controllers
{
    public class Task
    {
        public int TaskID { get; set; }
        public int ProjectID { get; set; }
        public string ProjectName { get; set; }
        public string TaskName { get; set; }
        public string TaskStatus { get; set; }
    }

    public class TaskController : ApiController
    {
        // GET api/task
        public IEnumerable<Task> Get()
        {
            Task[] tasks = new Task[2];

            tasks[0] = new Task()
            {
                TaskID = 1,
                ProjectID = 1,
                ProjectName = "ProjectOne",
                TaskName = "FirstPage Development",
                TaskStatus = "InProgress"

            };

            tasks[1] = new Task()
            {
                TaskID = 2,
                ProjectID = 1,
                ProjectName = "ProjectOne",
                TaskName = "Second Page Development",
                TaskStatus = "Yet To Start"

            };

            return tasks;
        }

        // DELETE api/task/5
        public void Delete(int id)
        {
            // Delete row in DB.
        }   

    }
}
DELETE http://localhost/WebApiOne/api/task/2 HTTP/1.1
Host: localhost
Connection: keep-alive
Accept: */*
Origin: http://localhost
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.93 Safari/537.36
Referer: http://localhost/WebApiOne/Views/JqGrid.htm
Accept-Encoding: gzip, deflate, sdch
Accept-Language: en-US,en;q=0.8