Uncaught RangeError: Maximum call stack size exceeded - Asp.net Mvc DropDown Binding With Web Api

Uncaught RangeError: Maximum call stack size exceeded - Asp.net Mvc DropDown Binding With Web Api

我正在尝试将级联下拉列表与 asp.net mvc 和 web api 绑定。

Web api 运行良好。我的控制器 class 返回值。我怀疑 jquery 有一些错误。我用邮递员测试了我的控制器。我得到了一些值。选择父下拉列表后,我收到此错误 "Uncaught RangeError: Maximum call stack size exceeded"

public JsonResult GetirBolumler(int fakID)
    {
        List<Core.ViewModel.BolumViewModel> bolumler = null;

        using (var client = new HttpClient())
        {
            client.BaseAddress = new Uri("http://www.myapiaress.com");
            client.DefaultRequestHeaders.Accept.Clear();
            client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
            HttpResponseMessage response = client.GetAsync("api/Danismanlik/ListeleBolum?FakulteID=" + fakID).Result;
            if (response.IsSuccessStatusCode)
            {
                bolumler = response.Content.ReadAsAsync<List<Core.ViewModel.BolumViewModel>>().Result;
            }
        }

        return Json(new SelectList(bolumler, "ID", "Ad"));



    }

和jquery在查看页面

<script type="text/javascript">
    $(document).ready(function () {

        //BÖLÜMLER DROP DOWN DOLDUR
        $("#ddlFakulteler").change(function () {
            alert('1');
            $("#ddlBolumler").empty();
            $.ajax({
                type: 'POST',
                url: '@Url.Action("GetirBolumler")',
                dataType: 'json',
                data: { fakID: $("#ddlFakulteler").val() },

                success: function (bolumler) {
                    $.each(bolumler, function (i, bolum) {
                        $("#ddlBolumler").append('<option value="' + bolum.ID + '">' + bolum.AD + '</option>');
                        alert('3');
                    });
                    alert('2');
                },
                error: function (ex) {
                    alert('Bölüm getirme hatası.' + ex);
                }
            });
            return false;
        })
        //BÖLÜMLER DROP DOWN DOLDUR
</script>

即将清空值。

这样解决了

我改变了这一行

data: { fakID: $("#ddlFakulteler").val() },

data: { fakID: fakulteID }, //fakID goes to controller

并放置这些行

var e = document.getElementById("ddlFakulteler");
var fakulteID = e.options[e.selectedIndex].value;

这一行之后

 $("#ddlFakulteler").change(function () {