none
Dudas en ejemplo Ajax RRS feed

  • Pregunta

  • Hola,

    Agradecería que me puedan ayudar en lo siguiente;

    Encontré un ejemplo de Ajax en MVC y esta en otra versión distinta a la que estoy aprendiendo a usar, me gustaría que me puedan orientar o dar solución a tal inquietud ya que el ejemplo lo encuentro bueno y didáctico para quienes empiecen en el desarrollo del framework.

    El desarrollo del ejemplo lo necesito hacer en ASP.NET MVC 3 (razor), bueno aquí dejo el código utilizado;

    (fuente del ejemplo: http://geeks.ms/blogs/etomas/archive/2009/06/30/asp-net-mvc-y-ajax-f-225-cil-no-facil-237-simo-ii.aspx)

    vista

    <h1>Ajax y MVC... tan fácil como parece!</h1>
    Escoja continente y deje que el poder de Ajax le muestre algunos paises...
    
    <select id="cmbContinente">
        <option value="---" selected="selected">Escoja continente...</option>
        <option value="eur">Europa</option>
        <option value="ame">America</option>
        <option value="asi">Asia</option>
        <option value="afr">Africa</option>
    </select>
    <select id="cmbPaises"></select>

    javascript

    <script type="text/javascript">
        function fillCombo(updateId, value) {
            $.getJSON("<%= Url.Action("PaisesPorContinente") %>" 
                + "/" + value,
                function(data) {
                    $("#"+updateId).empty();
                    $.each(data, function(i, item) {
                        $("#"+updateId).append("<option id='" 
                           + item.IdPais +"'>" + item.Nombre 
                           + "</option>");
                    });
                });
        }
    </script>

    controlador

    [ActionName("PaisesPorContinente")]
    public ActionResult GetPaisesPorContinente(string id)
    {
        var  paises = new PaisesModel().GetPaisesPorContinente(id);
        return new JsonResult() { Data = paises };
    }

    modelo

    public class Pais
    {
        public string Continente { get; set; }
        public string Nombre { get; set; }
        public string IdPais { get; set; }
    }
    
    public class PaisesModel
    {
        private List<Pais> paises;
        public PaisesModel()
        {
            this.paises = new List<Pais>();
            this.paises.Add(new Pais()
            {
                Continente = "eur",
                IdPais = "es",
                Nombre = "España"
            });
            // Más y más paises añadidos...
        }
    
        public IEnumerable<Pais> GetPaisesPorContinente
    (string continente) { return this.paises.FindAll
    (x => x.Continente == continente); } }

    saludos


    Mauricio Hernández A.

    miércoles, 2 de enero de 2013 1:23

Todas las respuestas

  • esta en otra versión distinta a la que estoy aprendiendo a usar

    la solucion en razor es la misma, ya que lo que aqui muestras es html, jquery y codigo del controlador (con el modelo), eso no cambiar en razor

    lo unico que seguro cambie es esta linea

    <%= Url.Action("PaisesPorContinente") %>

    pero solo seria

    @Url.Action("PaisesPorContinente")

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    miércoles, 2 de enero de 2013 12:59