none
como sería el Post de este DropDownList? RRS feed

  • Pregunta

  • Buenas tardes.

    Cómo sería el código [httpPost] para el siguiente DropDownList? (POR FAVOR)

    en el homecontroler tengo el siguiente código

            public ActionResult ciclosEscolares()
            {
                ViewBag.ciclo = muestracicloEscolar();
                
                return View();
            }
    
            public List<SelectListItem> muestracicloEscolar()
            {
                return new List<SelectListItem>()
                {
                    new SelectListItem(){Text="Seleccione ...", Value="00"},
                    new SelectListItem(){Text="2016-2017", Value="67"},
                    new SelectListItem(){Text="2017-2018", Value="78"},
                    new SelectListItem(){Text="2018-2019", Value="89"}
                };
            }
    

    y en la vista tengo lo siguiente:

    <br />
    <label> Ciclo Escolar:</label>
    @Html.DropDownList("misCiclos",(List<SelectListItem>)ViewBag.ciclo)
    <p></p>
    <p></p>

    Entiendo que el httpPost se ejecuta cuando se da click en el elemento de la lista; solo necesito guardar en una variable de sesión como por ejemplo del value del dropDownlist.

    Gracias por sua apoyo como siempre.

    Saludos.

    jueves, 4 de enero de 2018 16:50

Respuestas

  • hola

    el post tomaria el name del dropdownlist

    [HttpPost]

    public ActionResult ciclosEscolares(string misCiclos) { //aqui codigo }

    si solo se va a realizar el post del combo defines un parametro con el mismo name

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    jueves, 4 de enero de 2018 18:13
  • El HTTPPOST no se producirá con solo seleccionar un elemento del deplegable, es de esperar que el desplegable se encuentre dentro del tag <Form>/<Form> (o mediante el Helper @Html.BeginForm()) y que el formulario tenga un input de tipo SUBMIT que permita el envío de los datos del formulario al servidor. También, puedes invocar al método de acción mediante AJAX, para lo cual no es necesario del tag <FORM> ni del input de tipo SUBMIT, bastará con capturar el valor del elemento seleccionado mediante javascript y realizar la llamada al método de acción mediante AJAX.
    jueves, 4 de enero de 2018 18:36

Todas las respuestas

  • hola

    el post tomaria el name del dropdownlist

    [HttpPost]

    public ActionResult ciclosEscolares(string misCiclos) { //aqui codigo }

    si solo se va a realizar el post del combo defines un parametro con el mismo name

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    jueves, 4 de enero de 2018 18:13
  • El HTTPPOST no se producirá con solo seleccionar un elemento del deplegable, es de esperar que el desplegable se encuentre dentro del tag <Form>/<Form> (o mediante el Helper @Html.BeginForm()) y que el formulario tenga un input de tipo SUBMIT que permita el envío de los datos del formulario al servidor. También, puedes invocar al método de acción mediante AJAX, para lo cual no es necesario del tag <FORM> ni del input de tipo SUBMIT, bastará con capturar el valor del elemento seleccionado mediante javascript y realizar la llamada al método de acción mediante AJAX.
    jueves, 4 de enero de 2018 18:36
  • muchas gracias, y si..... esta dentro de un @Html.BeginForm()) y despues esta el input.

    Saludos y gracias

    viernes, 5 de enero de 2018 13:48
  • gracias Leandro, si quedó, pero ahora (te recuerdo que soy principiante en esto)... como iría el return ya que el cachar el value es solo para guardarla en una variable de sessión y según yo forzozamente hay que poner al final return View(); por que marca error:

    Se produjo una excepción de tipo 'System.InvalidOperationException' en System.Web.Mvc.dll pero no se controló en el código del usuario

    Información adicional: No hay ningún elemento ViewData de tipo 'IEnumerable<SelectListItem>' con la clave 'misCiclos'.

    Disculpa mi ignorancia y agradezco tu ayuda como siempre.

    Saludos.

    viernes, 5 de enero de 2018 13:54