Проблемы с выбором опции с загрузкой данных с Ajax запросом с опцией выбора объекта

Я выполнил службу отдыха, выполненную с помощью C #, с запросом ajax в поле со списком, этот объект показывает данные моей службы отдыха, это поле со списком должно заполнять данные из многих городов, и это показывает города, которые я выполняю в службе, но неудобство заключается в поле со списком объектов или в опции выбора в html5, всякий раз, когда я даю объект, он загружает данные, и я не могу выбрать свой город, который я хочу, перезагружая его, как бесконечный цикл, когда я хочу выбрать данные Приложение код

https://es.stackoverflow.com/questions/279794/problemas-en-mostrar-datos-en-combo-box-en-pantalla-con-petici%c3%b3n-ajax

<div class="form-group has-feedback">
    <label>Ciudad</label>
    <select class="form-control" data-rel="chosen"  id="Ciudad" name="Ciudad" onclick="ValidarExisteCiudad()">
        <option/>
        <option/>
    </select>
</div>
function ValidarExisteCiudad() {
    //$("[data-rel='chosen']").chosen();
    //var ddlCiudad = $("[data-rel='chosen']");
    var ddlCiudad = $("#Ciudad");
    ddlCiudad.empty().append('<option selected="selected" value="0" disabled = "disabled">Loading.....</option>');
        $.ajax({
            type: 'GET',
            url: "CargaCiudad",
            data: '{}',
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function (data) {


                ddlCiudad.empty().append('<option selected="selected" value="0">Seleccione ...</option>');
                $.each(data, function () {
                   ddlCiudad.append($("<option></option>").val(this['Value']).html(this['Text']));

                });
                // After updated data from database you need to trigger chosen:updated.
                //$("[data-rel='chosen']").trigger("chosen:updated");
            },  
            failure: function (data) {
                alert(data.responseText);
            },
            error: function (data) {
                alert(data.responseText);
                existeUsuario = false;
            }
        });




}
[HttpGet]
        [AllowAnonymous]
        public async Task<IActionResult> CargaCiudad()
        {
            List<Cuidad> Items = await drHelpPrueba.Cuidad.ToListAsync();
            List<SelectListItem> ciudad = new List<SelectListItem>();

            for (int i = 0; i < Items.Count; i++)
            {
                ciudad.Add(new SelectListItem
                {
                    Value = Convert.ToString(Items.ToList()[i].IdCiudad),
                    Text = Items.ToList()[i].Nombre
                });
            }

            return Json(ciudad);

        }

ddlCiudad.append ($ (""). val (это ['Значение']). html (это ['Текст']));

неопределенный


person Jose Antonio Sarria Garcia    schedule 07.08.2019    source источник


Ответы (1)


мой друг. Потому что из ответа вы не получите достоверных данных.

Попробуйте следовать этому. Надеюсь на помощь, дружище :))

function ValidarExisteCiudad() {

    var ddlCiudad = $("#Ciudad");
    ddlCiudad.empty().append('<option selected="selected" value="0" disabled = "disabled">Loading.....</option>');
        $.ajax({
            type: 'GET',
            url: "CargaCiudad",
            data: '{}',
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function (data) {


                ddlCiudad.empty().append('<option selected="selected" value="0">Seleccione ...</option>');
                $.each(data, function () {
                    ddlCiudad.append($("<option>  </option>").val(this.value).html(this.text)); //Modified this line

                });
                // After updated data from database you need to trigger chosen:updated.
                //$("[data-rel='chosen']").trigger("chosen:updated");
            },  
            failure: function (data) {
                alert(data.responseText);
            },
            error: function (data) {
                alert(data.responseText);
                existeUsuario = false;
            }
        });




}
person Tomato32    schedule 07.08.2019