Estoy tratando de recuperar datos en la lista desplegable, usando json, el programa funciona pero la lista desplegable muestra una lista blanca, al inspeccionar, los datos están allí pero no se muestran
Controlador:
public IActionResult GetClient() { var clientList = (from client in _context.Clients select new SelectListItem() { Text = client.Nom, Value = client.Id.ToString(), }).ToList(); clientList.Insert(0, new SelectListItem() { Text = "----Select----", Value = string.Empty }); return Json(clientList); }guion:
<script type="text/javascript"> $(document).ready(function () { $.ajax({ type: "GET", url: "/Clients/GetClient", success: function (data) { $.each(data, function () { $("#ClientId").append($("<option></option>").val(this['Value']).html(this['Text'])); }); } }); }); </script>código HTML:
</div> <div class="alert-danger" asp-validation-summary="ModelOnly"></div> <label asp-for="ClientId"></label> <select asp-for="ClientId" class="form-control" asp-items="@(new SelectList(Enumerable.Empty<SelectListItem>(),"Value", "Text"))"> </select> </div> <div>Gracias por tu ayuda
"The dropdownlist displays a white list, by inspecting, the data is there but it is not displayed"
El problema es muy obvio. Si inspeccionas el
HTML, te verán. ElvalueytextenLowercasepero que ha utilizado en su código enBlock/Capital uppercaseque esval(this['Value']).html(this['Text'])). Como sabrá, las claves de objeto Json están enLowercase - small alphabetde forma predeterminada.
Nota: simplemente reemplace el fragmento a continuación para que resuelva su problema por completo.
Solución:
$("#ClientId").append($("<option></option>").val(this['value']).html(this['text']));Producción:
Espero que te ayude en consecuencia para señalar tu problema.