DropDownList in Cascade MVC 4

3

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?

    
asked by anonymous 23.06.2015 / 14:44

1 answer

2

As a response to the solution I indicated in the comments.

In the line of your return you do not need to create a new encapsulation, change the line:

return Json(new { Result = data }, JsonRequestBehavior.AllowGet);

To

return Json(data, JsonRequestBehavior.AllowGet);
    
26.06.2015 / 00:29