0

我正在使用 Asp.net mvc4 web-api。

我得到一个错误 404 方法未找到,我正在使用 jquery ajax 调用 DelteMenu 方法。我在 pssing 参数 Using data : of Jquery ajax。如果我传递模型参数,它工作正常,但对于其他参数,如 Guid,字符串抛出异常:404 方法点头找到。如果你知道为什么它会抛出 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;
}

问候

4

2 回答 2

0

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

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

我的工具参考来自https://stackoverflow.com/a/17058251/2318354

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

于 2013-10-09T12:29:04.633 回答
0

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

我觉得奇怪的是返回了 404,而不是 400 Bad Request。

于 2013-08-15T09:05:36.380 回答