关于jquery:自定义IsAjaxRequest函数在MVC 6中不起作用

Custom IsAjaxRequest function doesn't work in MVC 6

我在MVC6控制器中检测Ajax请求时遇到问题,因为在MVC6中找不到isajaxRequest,所以我使用了以下功能:

1
2
3
4
5
6
7
8
9
        public static bool IsAjaxRequest(this HttpRequest request)
    {
        if (request == null)
            throw new ArgumentNullException(nameof(request));
        var x = request.Headers["X-Requested-With"];
        if (request.Headers != null)
            return request.Headers["X-Requested-With"] =="XMLHttpRequest";
        return false;
    }

但是函数总是返回false

我的jQuery代码:

1
2
3
4
5
            $("ul.menu a").click(function (e) {
            e.preventDefault();
            var url = $(this).attr("href");
            $('#main-container').load(url);
        });


问题出在选择器中,因为它是错误的E.PreventDefault不能工作,请求继续正常,这就是为什么它永远不会是Ajax请求的原因。