Ajax没有返回期望的结果或根本没有工作

时间:2017-09-06 12:58:09

标签: ajax asp.net-mvc

我一直在尝试使用ajax调用从MVC中的控制器加载返回JsonResults操作。我可以看到alert()函数触发得很好,但是ajax没有执行。我搜索了几个来源但无济于事。

public JsonResult FillBusinessLicenceL3(int? selectedID)
    {
        var bl3_Items = db.LevelThreeItems.Where(l3 => l3.LevelTwoItem_ID == selectedID);

        return Json(bl3_Items, JsonRequestBehavior.AllowGet);
    }

以下也是调用json方法的javascript。

<script>
function FillBussLicence_L3items() {
    alert("You have clicked me");
    var bl2_Id = $('#BussLicenceL2_ID').val();
    //alert(document.getElementById("BussLicenceL2_ID").value);
    alert(bl2_Id);
    $.ajax({
        url: 'StartSurvey/FillBusinessLicenceL3/' + bl2_Id,
        type: "GET",
        dataType: "JSON",
        data: "{}", // { selectedID : bl2_Id },
        //contentType: 'application/json; charset=utf-8',
        success: function (bussLicence_L3items) {
            $("#BussLicenceL3_ID").html(""); // clear before appending new list
            $.each(bussLicence_L3items, function (i, licenceL3) {
                $("#BussLicenceL3_ID").append(
                    $('<option></option>').val(licenceL3.LevelThreeItem_ID).html(licenceL3.LevelThreeItem_Name));
            });
        }
    });
}

另外,我也试过这个但没有执行通知。 非常感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

浏览浏览器的控制台后,我注意到LINQ查询正在跟踪数据库,并且正在创建一个循环引用,所以我将查询更改为以下内容并瞧!!

public JsonResult FillBusinessLicenceL3(int? selectedID)
    {
        var bl3_Items = db.LevelThreeItems.
            Where(k => k.LevelTwoItem_ID == selectedID).
            Select(s => new { LevelThreeItem_ID = s.LevelThreeItem_ID, LevelThreeItem_Name = s.LevelThreeItem_Name });

        return Json(bl3_Items, JsonRequestBehavior.AllowGet);
    }

对控制器的ajax调用没有任何问题。