我的ajax功能为:
function LoadTeacherObservationData(_CategoryID, _SearchText) {
alert("In here");
alert(_CategoryID);
alert(_SearchText);
flag = 1;
$.ajax({
url: "PP/getTeacherObservationData",
data: {
'CategoryID': _CategoryID,
'SearchText': _SearchText
},
dataType: "json",
type: 'POST',
cache:false,
success: function (data) {
OnlebelChange(_CategoryID);
$('#hdnCategoryID').val(_CategoryID);
$("#lvTeacherData").kendoListView({
dataSource: data,
dataBound: function(e) {
if(this.dataSource.data().length == 0){
//custom logic
$("#lvTeacherData").append("<h4> No record found.</h4>");
}},
template: kendo.template($("#lvTeacherData_Template").html())
});
},
error: function () {
alert("error in click");
}
});
}
我已确保使用正确的参数调用该函数,因为我已通过警报框对其进行了检查。
我的问题是它没有被渲染到:
PP/getTeacherObservationData 正如我在 URL 中提到的。
PP 是我的 Controller ,getTeacherObservationData 是我的函数。
我将该函数编写如下:
public JsonResult getTeacherObservationData(string CategoryID, string SearchText)
{
try
{
if (CategoryID == "1")
return Json(new TeacherObservation().ScheduledObserVations(SearchText));
if (CategoryID == "2")
return Json(new TeacherObservation().InProcessObservations(SearchText));
if (CategoryID == "3")
return Json(new TeacherObservation().CompletedObservations(SearchText));
return Json(new List<TeacherObservation>());
}
catch (Exception ex)
{
throw ex;
}
}
而不是调用此函数 ajax 函数代码进入错误 block 并向我发出警报:点击错误
可能是什么问题?
请帮助我。
我想通过ajax进行函数调用。
使用MVC4。
最佳答案
扩展我的评论:URL PP/getTeacherObservationData
是相对的,因此如果您当前不在网站的根目录中,那么这将不起作用。
如果您的网站位于域的根目录中,则可以使用正斜杠前缀 /PP/getTeacherObservationData
。
您还可以使用 this answer 中的解决方案之一。例如 ResolveUrl("~/")
来动态获取网站的根目录,这样更好,因为它更便携。例如,如果您将站点从域的根目录移出并移至目录中,则与对根目录进行硬编码不同,这将继续工作。
关于c# - Ajax 不进行函数调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24033921/