Jquery 未捕获类型错误:未定义不是函数

Jquery 未捕获类型错误:未定义不是函数,jquery,ajax,json,asp.net-mvc-3,Jquery,Ajax,Json,Asp.net Mvc 3,当我尝试在我的家庭控制器中调用方法时,我收到消息uncaughttypeerror:Undefined不是一个函数 关于我为什么会收到这条信息的建议 findIdpActivities = function (pernr, callback) { restEndPoint = serviceBase + 'Home/FindIdpActivities'; data = "{'perNr':'" + pernr + "'}"; makeJsonDataAjaxCall(ca

当我尝试在我的家庭控制器中调用方法时,我收到消息
uncaughttypeerror:Undefined不是一个函数

关于我为什么会收到这条信息的建议

findIdpActivities = function (pernr, callback) {
    restEndPoint = serviceBase + 'Home/FindIdpActivities';
    data = "{'perNr':'" + pernr + "'}";
    makeJsonDataAjaxCall(callback);
};

makeJsonDataAjaxCall = function (callback, obj) {
    $.ajax({
        type: "POST",
        url: restEndPoint,
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        data: data,
        success: function (data) {
            callback(data);
        }
    });
};
单击按钮时执行该方法

$(document).on("click", "input[name=btnViewActivities]", function (e) {
    e.preventDefault();
    var value = $(this).parent().find("input[name=hiddenPerNr]").val();
    dataService.findIdpActivities(value);
});
这就是HomeController中的方法

[HttpPost]
    public JsonResult FindIdpActivities(string perNr)
    {
        viewModel.GetIdpActivities(perNr);

        return Json(new
            {
                Activities = viewModel.IdpActivities
            });
    }

这是一个常见的javascript错误,当您试图在函数定义之前调用它时会发生这种错误

例如,虽然此代码按预期工作:

var sayHello= function () {
    return 'Hello!'
};

alert(sayHello());
如果颠倒语句顺序,将出现“未捕获类型错误:未定义不是函数”错误:

alert(sayHello());

var sayHello= function () {
    return 'Hello!'
};
因此,我建议您再次检查脚本是否正确加载,以及findIdpActivities是否作为dataService对象的函数正确初始化