View:
<asp:Content ID="Javascript" ContentPlaceHolderID="HeadContent" runat="server">
<script type="text/javascript">
$(document).ready(function () {
$("#estados").change(function () {
var uf = listaCidade($(this).val());
});
});
//chamada ajax para a Action ListaCidade
//passando como parâmetro a Estado selecionado
function listaCidade(uf) {
// <%=Url.Action("listaCidade")%>
$.getJSON('/AdmPaginaBranca/listaCidade/' + uf, listaCidadeCallBack);
}
//função que irá ser chamada quando terminar
//a chamada ajax
function listaCidadeCallBack(json) {
//Limpar os itens que são maiores que 0
//Ou seja: não retirar o primeiro item
$("#cidades:gt(0)").remove();
$(json).each(function (id, nome) {
//adicionando as opções de acordo com o retorno
//alert(data);
$("#cidades").append("<option value='" + this.id + "'>" + this.nome + "</option>");
});
}
</script>
Controller:
public ActionResult listaCidade(int id)
{
cidadeEstadoDAO obj = new cidadeEstadoDAO();
var estado = obj.CarregarComboCidade(id);
var data = estado.Select(m => new { m.id, m.nome }).ToList();
return Json(new { Result = data }, JsonRequestBehavior.AllowGet);
}
I have the following problem: When I select the state in dropdownlist
, it calls the method normally and does the select in the database (checked by "inspect element"), however, in dropdown
of the city, it is coming with the value undefined . When I put a alert
in the "id" or "name" it also appears undefined .
Can some charitable soul help me?