• 10-07-2018, 12:48:16
    #1
    Arkadaşlar merhabalar elimdeki bir projede cascade dropdown yapmaya çalışıyorum ancak başarılı olamadım neyi yanlış yaptığım konusunda bilgi verebilirseniz mutlu olurum.

    View

    <div class="form-group">
                            <label class="col-sm-3">Şehir</label>
                            <div class="col-sm-6">
                                @Html.DropDownListFor(x=>x.sehirID, (IEnumerable<SelectListItem>)ViewBag.Sehir, "Seçiniz..", new { @class = "form-control select2",@id="sehirID" })
                            </div>
                        </div>  
    
                        <div class="form-group">
                            <label class="col-sm-3">İlçe</label>
                            <div class="col-sm-6">
                                @Html.DropDownListFor(x=>x.ilceID, Enumerable.Empty<SelectListItem>(), "Seçiniz...", new { @class = "form-control select2" })
                            </div>
                        </div>
    <script src="~/Content/plugins/jquery/jquery.min.js"></script>
    
    
     <script type="text/javascript">
        $(document).ready(function () {
            $('#sehirID').change(function () {
                var sehirId = $(this).val();
                if (sehirId != null && sehirId != '') {
                    $.ajax({
                        type: "post",
                        url: '@Url.Action("IlceGetir", "Mulk")',
                        data: { sehirId: sehirId },
                        dataType: 'json',
                        success: function (sehirler) {
                            $.each(sehirler, function (index, sehir) {
                                $('#ilceID').append($('<option/>', {
                                    value: sehir.ilceID,
                                    text: sehir.ilceAdi
                                }));
                            });
                        },
                        error: function () {
                            alert("Hata");
                        },
                        beforeSend: function () {
                        },
                        complete: function () {
                        }
                    });
                }
            });
        });
    </script>
    public JsonResult IlceGetir(string id)
            {
                int sehirID = Convert.ToInt32(id);
                return Json(managerSelectList.GetDistrict(sehirID));
            }
  • 10-07-2018, 13:02:49
    #2
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Return json kismina jsonbehavior allowget ekleyin
  • 10-07-2018, 13:04:55
    #3
    url: '<span class="userTag">@Url.Action("</span>IlceGetir", "Mulk")',
    bu kısımda span olmaması lazım sadece istek atılan adres olacak url: '/ilcegetir' şeklinde
  • 10-07-2018, 13:22:10
    #4
    etapsoft adlı üyeden alıntı: mesajı görüntüle
    Return json kismina jsonbehavior allowget ekleyin
    Hocam yazdığım kodda JSonResult a düşüyor fakat id null geliyor, dediğinizi de yaptım bu arada fakat id yi yakalayamıyorum



    mehmetuken adlı üyeden alıntı: mesajı görüntüle
    url: '<span class="userTag">@Url.Action("</span>IlceGetir", "Mulk")',
    bu kısımda span olmaması lazım sadece istek atılan adres olacak url: '/ilcegetir' şeklinde
    hocam span kodlarını kedisi eklemiş yazdığım kod içerisinde span kodları bulunmuyor orjinalinde url:'("IlceGetir","Mulk")' şeklinde
  • 10-07-2018, 17:45:44
    #5
    $('#ProvinceId').change(function () {
                $('#DistrictId').attr('disabled', true);
                $('#dispreloader').fadeIn(200);
                $.getJSON('@Url.Action("GetDistricts/")' + $('#ProvinceId').val(), function (data) {
                    var items = "";
                    items += "<option value='' disabled selected>Seçim Yapın..</option>";
                    $.each(data, function (i, item) {
                        items += "<option value='" + item.Id + "'>" + (item.Name) + "</option>";
                    });
                    $("#DistrictId").html(items);
                    $('#DistrictId').removeAttr('disabled');
                    $('#dispreloader').fadeOut(200);
                });
            });
    Controller

    public ActionResult GetDistricts(int Id)
            {
    #if DEBUG
                System.Threading.Thread.Sleep(2000);
    #endif
                return Json(DbContext.Districts.Where(p => p.ProvinceId == Id).Select(p => new { Id = p.Id, Name = p.Name }), JsonRequestBehavior.AllowGet);
            }
    kendine göre düzenle
  • 10-07-2018, 18:37:46
    #6
    <script type="text/javascript">
        $(document).ready(function () {
            $("#sehirID").change(function () {
                $("#ilceID").empty();
                $.ajax({
                    type: 'POST',
                    url: '@Url.Action("IlceGetir")',
                    dataType: 'JSON',
                    data: { id: $("#sehirID").val() },
                    success: function (states) {
                        $.each(states, function (i, state) {
                            $("#ilceID").append('<option value="' + state.Value + '">' +
                                 state.Text + '</option>');
                        });
                    },
                    error: function (ex) {
                        alert('Failed.' + ex);
                    }
                });
                return false;
            })
        });
    
        </script>
    Bu şekilde hallettim yardımlarınız için çok teşekkür ederim