none
Tomar el Value del elemento seleccionado en un DropDownList RRS feed

  • Pregunta

  • Hola:

     Tengo un DropDownList cargado con elementos de un json, de la lista cargada necesito tomar el Value para ejecutar una funcion del Controller y recuperar un valor para mostrarlo en un control de la vista.

     Mi pregunta es, ¿como tomar el valor del DropDownList cargado con un json?


    Saludos desde Monterrey, Nuevo León, México!!!

    viernes, 27 de noviembre de 2015 4:03

Respuestas

  • hola

     >>Creo que lo mas sano seria usar jquery y ajax tal cual como me lo comentaron en la pregunta anterior.

    puedes suar jquery si asi lo quieres, en ese caso vas a tener que definir el selector del combo que lista las colonias

    podrias inspeccionar el html generado con el developer tools del browser al cual accedes con F12, entonces saber cual es el id del ese combo

    usarias en el codigo cliente

    var coloniaId = $("#idcombocolonia").val();

    ese valor lo pasaras por $.ajax al action

    var params = {
    	coloniaId : $("#idcombocolonia").val()
    };
    
    $.ajax({
            type: "POST",
            url: '@Url.Action("ActionXX")',
            data: params,
            contentType: "application/json; charset=utf-8",
            dataType: "json",
    		.
    		.

    en el controller defines un action que sea

    public class xxCtrl : Controler{
    
        [HttpPost]
         public ActionResult ActionXX(int coloniaId){
    
              //codigo
    
         }
    
    }

    es importante que los dos valores que marco en negrita coincidan

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    viernes, 27 de noviembre de 2015 15:35

Todas las respuestas

  • >>¿como tomar el valor del DropDownList cargado con un json?

    en realidad depende, la idea es realziar un post al actiond el controller o vas a usar jquery para tomar el valor y enviarlo por $.ajax

    la idea igual es que el valor con el cual enviaes coincida con un parametro del action

    en los articulos que comente en la otra pregunta explico sobre el tema

    Cargar Combox en cascada


    el "name" que defines en el dropdownlist lo debes declarar en el action para que al hacer el post el modelbinding de asp.net mvc pueda asignarlo

    analiza en los articulo como envio el valor del combo al controller

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    viernes, 27 de noviembre de 2015 14:30
  • Hola:

     Siguiendo en el mismo camino de Estados, Municipios y Colonias ahora necesito recuperar el Código Postal de la colonia, este código Postal esta relacionado con la Colonia a través del CodigoPostalId.

    Colonia
    ColoniaId
    CodigoPostalId
    Nombre
    
    CodigoPostal
    CodigoPostalId
    Codigo

      Cuando cargo el DropDown de colonias:

            [AcceptVerbs(HttpVerbs.Get)]
            public ActionResult GetById(string municipioId)
            {
                if (String.IsNullOrEmpty(estadoId))
                {
                    throw new ArgumentNullException("municipioId");
                }
                int id = 0;
                bool isValid = Int32.TryParse(municipiooId, out id);
                var states = _coloniasRepository.Filter(x => x.MunicipioId.Equals(id), true);
                var result = (from s in states
                              select new
                              {
                                  Value = s.ColoniaId,
                                  Text = s.Nombre
                              }).ToList();
    
                return Json(result, JsonRequestBehavior.AllowGet);
            }

     Como veras, no tengo mas información en el DropDown mas que el Value y el Text entonces para poder recuperar el CodigoPostal usando el CodigoPostalId necesito primero recuperar la ColoniaId, una vez que yo tenga el CodigoPostal lo que quiero es simplemente mostrarlo en un control de la vista.

     Creo que lo mas sano seria usar jquery y ajax tal cual como me lo comentaron en la pregunta anterior.

     Nuevamente revisare el articulo que me sugieres a ver si encuentro algo que pueda servirme

    Gracias.



    Saludos desde Monterrey, Nuevo León, México!!!

    viernes, 27 de noviembre de 2015 15:22
  • hola

     >>Creo que lo mas sano seria usar jquery y ajax tal cual como me lo comentaron en la pregunta anterior.

    puedes suar jquery si asi lo quieres, en ese caso vas a tener que definir el selector del combo que lista las colonias

    podrias inspeccionar el html generado con el developer tools del browser al cual accedes con F12, entonces saber cual es el id del ese combo

    usarias en el codigo cliente

    var coloniaId = $("#idcombocolonia").val();

    ese valor lo pasaras por $.ajax al action

    var params = {
    	coloniaId : $("#idcombocolonia").val()
    };
    
    $.ajax({
            type: "POST",
            url: '@Url.Action("ActionXX")',
            data: params,
            contentType: "application/json; charset=utf-8",
            dataType: "json",
    		.
    		.

    en el controller defines un action que sea

    public class xxCtrl : Controler{
    
        [HttpPost]
         public ActionResult ActionXX(int coloniaId){
    
              //codigo
    
         }
    
    }

    es importante que los dos valores que marco en negrita coincidan

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    viernes, 27 de noviembre de 2015 15:35