DropDownList in Cascade MVC 4

Posted on

Question :


<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  

        $(json).each(function (id, nome) {
            //adicionando as opções de acordo com o retorno  

            $("#cidades").append("<option value='" + this.id + "'>" + this.nome + "</option>");


 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?


Answer :

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);


return Json(data, JsonRequestBehavior.AllowGet);


Leave a Reply

Your email address will not be published. Required fields are marked *