ASP.NET dropdown cascade na edit view
25/09/2018
0
Bom dia, estou com uma rotina funcionando perfeitamente na view Create que quando seleciono o estado em um dropdown carrega as cidades no outro dropdown. O problema é quando vou para a view Edit, que a cidade não aparece selecionada no index correto.
Por exemplo, criei um novo registro com EstadoId = 2 e CidadeId = 5 (grava corretamente no banco de dados), quando vou no editar o EstadoId esta selecionado corretamente mas o CidadeId fica no primeiro da lista.
Segue o HTML:
@Html.DropDownListFor(model => model.CidadeId, new SelectList(" "), "", new { @class = "form-control w-100" })
Segue a parte do javascript:
O que posso fazer para selecionar a cidade no index correto na view edit?
Por exemplo, criei um novo registro com EstadoId = 2 e CidadeId = 5 (grava corretamente no banco de dados), quando vou no editar o EstadoId esta selecionado corretamente mas o CidadeId fica no primeiro da lista.
Segue o HTML:
@Html.DropDownListFor(model => model.CidadeId, new SelectList(" "), "", new { @class = "form-control w-100" })
Segue a parte do javascript:
<script> $(document).ready(function () { buscaCidades(); $("#EstadoId").change(buscaCidades); function buscaCidades() { $("#CidadeId").empty(); $.ajax({ type: 'POST', url: '@Url.Action("GetCidades")', dataType: 'json', data: { id: $("#EstadoId").val() }, success: function (cidades) { $.each(cidades, function (index, row) { $("#CidadeId").append('<option value="' + row.value + '">' + row.text + '</option>'); }); } }); return false; }; }); </script>
O que posso fazer para selecionar a cidade no index correto na view edit?
Guilherme Schirmer
Curtir tópico
+ 2
Responder
Post mais votado
26/09/2018
Consegui resolver depois de um tempo e se ajudar alguém vou passar o que fiz:
Passei a lista de cidades pelo ViewBag testando se ele é nulo e tirei o buscaCidades() da linha 4 do código javascript acima.
Passei a lista de cidades pelo ViewBag testando se ele é nulo e tirei o buscaCidades() da linha 4 do código javascript acima.
@if (ViewBag.Cidades == null) { <select class="form-control w-100" asp-for="CidadeId" id="CidadeId" asp-items="@(new SelectList(string.Empty, "Id", "Nome"))"></select> } else { <select class="form-control w-100" asp-for="CidadeId" id="CidadeId" asp-items="@(new SelectList(ViewBag.Cidades, "Id", "Nome"))"></select> }
Guilherme Schirmer
Responder
Clique aqui para fazer login e interagir na Comunidade :)