ASP.NET dropdown cascade na edit view
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
Curtidas 2
Melhor post
Guilherme Schirmer
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>
}
GOSTEI 1