找不到Asp.Net web api ajax调用404方法

找不到Asp.Net web api ajax调用404方法,asp.net,jquery,asp.net-mvc-4,asp.net-web-api,http-status-code-404,Asp.net,Jquery,Asp.net Mvc 4,Asp.net Web Api,Http Status Code 404,我正在使用Asp.net mvc4 web api 我得到一个错误404方法未找到,我正在使用jQueryAjax调用DelteMenu方法。我正在使用jqueryajax的数据进行论证。如果我传递模型参数,它工作正常,但对于其他参数,如Guid、字符串抛出异常:404方法nod found。如果您知道它抛出404错误的原因,请告诉我 //api method public HttpResponseMessage DeleteMenu(Guid MenuId) {

我正在使用Asp.net mvc4 web api

我得到一个错误404方法未找到,我正在使用jQueryAjax调用DelteMenu方法。我正在使用jqueryajax的数据进行论证。如果我传递模型参数,它工作正常,但对于其他参数,如Guid、字符串抛出异常:404方法nod found。如果您知道它抛出404错误的原因,请告诉我

//api method
public HttpResponseMessage DeleteMenu(Guid MenuId)
        {
            try
            {
                MenuDA.DeleteMenu(objMenuModel.MenuId);

                return this.Request.CreateResponse(
                                HttpStatusCode.OK,
                                new
                                {
                                    Success = true
                                });


            }
            catch (Exception ex)
            {
                ErrorLogDA.LogException(ex);
                throw ex;
            }

        }

//Jquery ajax function

function performdeletemenu(MenuId)
{

    if (confirm('Are you sure you want to delete this menu?'))
    {
        $.ajax({
            type: 'DELETE',
            url: '/api/MenuWebApi/DeleteMenu/',
            data: "MenuId=" + MenuId,
            success: function (data)
            {
                if (data.Success == true)
                {
                    GetMenuList();
                }
            },
            error: function (xhr, textStatus, errorThrown)
            {
                //window.location = JsErrorAction;
            },
            dataType: "json",
            headers:
            {
                'RequestVerificationToken': JsTokenHeaderValue
            }

        });
    }

    return false;
}

当通过jQuery的ajax函数发送
HTTP DELETE
时,
数据设置不起作用。您必须在url本身中传递Guid:
url:'/api/MenuWebApi/DeleteMenu?MenuId='+MenuId


我确实觉得奇怪的是,返回的是404,而不是400错误请求。

在RouteConfig.cs中添加这一行,如下所示

routes.IgnoreRoute("{*x}", new { x = @".*\.asmx(/.*)?" });
我从


如果找不到404错误方法,它肯定会工作。

您好,但之前的错误是404不是400错误请求。谢谢,伙计……:)很高兴它起作用了。为了正确反映问题,我在您的问题中添加了jQuery标记(因为这是一个jQuery标记,而不是Web API标记)。您好,现在又有两个参数出现404错误,您能告诉我是否可以使用Http delete传递多个参数吗?-----给定显示404错误的url,可以将两个参数传递给
httpdelete
方法。因此,还有其他问题。