未捕获的TypeError:未定义不是函数

我收到消息Uncaught TypeError:Undefined is not a function当我尝试在我的家庭控制器中调用方法时, Uncaught TypeError:Undefined is not a function

建议也许是为什么我收到这条消息?

 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()); 

如果颠倒语句的顺序,则会出现“未捕获的TypeError:undefined不是函数”错误:

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

因此,我建议您仔细检查您的脚本是否正确加载,并且findIdpActivities正在作为dataService对象的函数正确初始化。