Ошибка возврата данных контроллера JSon

У меня есть следующий код в моем контроллере, куда я отправляю список городов в JsonResult

private ApplicationDbContext db = new ApplicationDbContext();
 //la linea anterior es donde instancio el modelo de datos o data context
    public JsonResult GetDataCiudades()
    {
        var CiudadesJson =  db.ciudad.ToListAsync(); // from model 

        return Json(CiudadesJson, JsonRequestBehavior.AllowGet);
    }

И когда я пытаюсь вернуть этот JsonResult из представления, я использую следующий код ...

else {
            $('#Ciudad').find('option').remove();
            $.ajax({
                type: "POST",
                url: '@Url.Action("GetDataCiudades", "GenerarCertificado")',
                dataType: 'json',
                type: 'POST',
                data: "{}",
                contentType: 'application/json',
                success: function (data) {
                   var result = JSON.parse(data);
                    $.each(result, function (index, value) {
                        var option = $('');
                        $('#Ciudad').append(option);
                    });
                },
                error: function (data, status, jqXHR) {
                    alert('Error al cargar Ciudades.');
                }
            });
        }

Но он возвращает много объектов и символов из выпадающего списка, который я показываю на виде ....

errorjson

Что я делаю не так ??

0
задан 08.03.2017, 21:13
1 ответ

BasГЎndome в в этом Json

{ dato1:
  { objeto:
    { 
      objeto1:"info",
      objeto2:"info",
      objeto3:"info"‌​
    }
  },
  dato2:"informaci‌​on",
  dato3:"informaci‌​on"
}

то, что ты можешь делать, состоит в том, чтобы пробегать Json я помещаю objeto: { ... }

success: function (data) {
  var result = JSON.parse(data);
  //este ciclo solo si necesitas los valores del objeto interno
  //este .each recorrerá únicamente el objeto interno
  $.each(result.objeto, function (index, value) {
    var option = $('<option value="' + index + '">' + value + '</option>');
    $('#Ciudad').append(option);
  });


  //suponiendo que necesitas todos los valores del Json
  $.each(result, function (index, value) {
    if(value.objeto != undefined){//validando que el value tenga un objeto
      //recorriendo el objeto interno
      $.each(value.objeto, function (index1, value1) {
        var option = $('<option value="' + index1 + '">' + value1 + '</option>');
        $('#Ciudad').append(option);
      });
    }
    var option = $('<option value="' + index + '">' + value + '</option>');
    $('#Ciudad').append(option);
  });
},

В случае, если он бросит ошибку с result.objeto попытайся с result[0].objeto

0
ответ дан 24.11.2019, 12:05
  • 1
    nooo json должен бросать имя городов, как mexico я прекращаюсь, bogota caracas..., но вместо этого он бросает меня object также как и то, что показывает первый post, image – ger 14.12.2016, 20:13
  • 2
    json, которые он использует только, это было, чтобы основываться, в котором твой recibí схвати очевидно informació n изменись равно как переменные объекта, но ты пробовал, с которым я разместил тебя как ответ? – JuankGlezz 14.12.2016, 20:26