CuriousToLearn Ответов: 1

JQuery AJAX - не может привязать данные к выпадающему списку - ASP.NET MVC, jquery


Не удается выполнить привязку каскадных выпадающих меню - jQuery с помощью AJAX

Что я уже пробовал:

Моя БД состоит из регионов, подразделений и Штатов. Мое заявление (ASP.NET MVC) приложение использует entityframework для привязки данных к выпадающему списку.

Создано действие для привязки регионов по умолчанию.
Создан действий, либо в качестве параметра, чтобы вспомнить подразделений
[HttpGet]  
       public JsonResult GetDivisionsByRegions(string regionID = "")  
       {  
           try  
           {  
               List<Division> allDivisions = new List<Division>();  
               int ID = 0;  
               if (int.TryParse(regionID, out ID))  
               {  
                   using (GeoEntities data = new GeoEntities())  
                   {  
                       allDivisions = data.Divisions.Where(div => div.RegionID == ID).OrderBy(div => div.DivisionID).ToList();  
                   }  
               }  
               if (Request.IsAjaxRequest())  
               {  
                   return new JsonResult  
                   {  
                       Data = allDivisions,  
                       JsonRequestBehavior = JsonRequestBehavior.AllowGet  
                   };  
               }  
               else  
               {  
                   return new JsonResult  
                   {  
                       Data = "Invalid Data",  
                       JsonRequestBehavior = JsonRequestBehavior.AllowGet  
                   };  
               }  
           }  
           finally  
           {  
           }  
       }  

вызов jQuery AJAX для получения данных из выпадающего списка & amp; bind to.
<script type="text/javascript">  
    $(document).ready(function () {  
        $('#RegionID').change(function () {  
            var regionID = parseInt($('#RegionID').val());  
            if (!isNaN(regionID)) {  
                var ddDivision = $('#DivisionID');  
                ddDivision.empty();  
                ddDivision.append($("<option></option>").val("").html("Select Division"));  
                $.ajax({  
                    url: "@Url.Action("GetDivisionsByRegions","GetGeoData")",  
                    type: "GET",  
                    data: { regionID: regionID },  
                    dataType: "json",  
                    success: function (data) {  
                        $.each(data, function (i, value) {  
                            ddDivision.append(  
                                $('<option></option>').val(value.DivisionID).html(value.DivisionName)  
                                );  
                        });  
                    },  
                    error: function () {  
                        alert('Sorry!! Error');  
                    }  
  
                });  
              }  
        });  
    });  
</script>

Возможность получения данных от сущности.
Ошибка при привязке данных к выпадающему списку деления.(предупреждение показывает: "извините!! Ошибка").

Пожалуйста, помогите мне.

Karthik_Mahalingam

Проверьте в консоли chrome подробную ошибку

CuriousToLearn

Спасибо, Картик, за твой ответ. Я уже пробовал заглянуть в консоль браузера,но не увидел никакого журнала.

CuriousToLearn

Привет, Картик, еще раз спасибо.
Я столкнулся со следующими двумя исключениями:

Экземпляр ObjectContext был удален и больше не может использоваться для операций, требующих подключения.

Циклическая ссылка была обнаружена при сериализации объекта типа System. Data. Entity.DynamicProxies'

И

context.Configuration.ProxyCreationEnabled = false;
решить проблему.

1 Ответов

Рейтинг:
2

Ramesh Kumar Barik

$(документ).готово(функция () {
$('#RegionID'). change(функция () {
var regionID = parseInt ($('#RegionID'). val());
если (! isNaN(regionID)) {
var ddDivision = $('#DivisionID');
ddDivision.пустые();
ddDivision.функции append($("").функция val("").код HTML("выберите отдел"));
$.Аякс({
url: "@Url. Action ("GetDivisionsByRegions", " GetGeoData")",
типа: "вам",
сведения: { либо: либо },
тип данных: "json",
успех: функция (данные) {
$.каждый(данные.д функция (Я, значение) {
ddDivision.добавить(
$("). val (value.DivisionID). html(значение.DivisionName)
);
});
},
функция ошибок () {
предупреждение (К сожалению!! Ошибка');
}

});
}
});
});------------
Проверьте в консоли браузера, что возвращаемый объект может находиться в данных. d.
Так что попробуйте data. d in
$.каждый(данные.д функция (Я, значение) ......


CuriousToLearn

Спасибо Рамешу Кумару Барику за ваш ответ.
Я попробовал $.each (data.d, function (i, value) {...}), но проблема все еще сохраняется.

CuriousToLearn

Привет, Рамеш Кумар Барик, еще раз спасибо.
Я столкнулся со следующими двумя исключениями:

Экземпляр ObjectContext был удален и больше не может использоваться для операций, требующих подключения.

Циклическая ссылка была обнаружена при сериализации объекта типа System. Data. Entity.DynamicProxies'

И

DataEntities data = new DataEntities();
data.Configuration.ProxyCreationEnabled = false;

решить проблему.