Como rescatar valor un select MVC C#

publicado por: Anonymous

La idea es guardar el valor seleccionado en el select en una variable, para luego guardarla en una Base de Datos.

CONTROLADOR GET

    public ActionResult GetIndex()
    {   //crear un objeto para generar la consulta.
        NameValueCollection queryString = Request.QueryString;
        //Llama a base de datos
        IDbConnection database = new SqlConnection(config.ConnectionString);
        //query consulta
        string query = @"
            select 
                l.cod_local 'CodigoLocalidad',
                l.nom_local 'NombreLocalidad'
            from 
                localidad l
        ";
        //ordenar datos de consulta en una lista
        IEnumerable<dynamic> localidades = database.Query(query);

        ViewData["localidades"] = localidades;

        return View();
    }

CONTROLADOR POST

[ActionName("Index")]


[httpPost]


public ActionResult PostIndex(FormCollection form)

    {
        string query = @"

            select 

                l.cod_local 'CodigoLocalidad',

                l.nom_local 'NombreLocalidad'
            from 
                localidad l
        ";

        IEnumerable<dynamic> localidades = database.Query(query);

        ViewData["localidades"] = localidades;



        return View();
    }

VISTA

            <fieldset>
            <legend>Datos captación</legend>
            <p>Seleccione Localidad</p>
            <select  id="dplocalidad">
                            <option value="Selected">Seleccione Opción</option>
                @{
                    if (ViewData["localidades"] != null)
                    {
                        IEnumerable<dynamic> localidades = (IEnumerable<dynamic>)ViewData["localidades"];

                        foreach (dynamic localidad in localidades)
                        {
                            string nombreLocalidad = localidad.NombreLocalidad;
                            int codigolocalidad = localidad.CodigoLocalidad;
                            <option value="@localidad.CodigoLocalidad">@nombreLocalidad.ToUpper()</option>

                        }
                    }
                }

            </select>

Atento a sus respuestas, Gracias

solución

Así tendrías que recibir el valor dependiendo del tipo de dato que sea CodigoLocalidad. En este ejemplo, es int.

<select id="dplocalidad"  name="dplocalidad">
    <option value="Selected">Seleccione Opción</option>
    @{
        if (ViewData["localidades"] != null)
        {
            IEnumerable<dynamic> localidades = (IEnumerable<dynamic>)ViewData["localidades"];

            foreach (dynamic localidad in localidades)
            {
                string nombreLocalidad = localidad.NombreLocalidad;
                int codigolocalidad = localidad.CodigoLocalidad;
                <option value="@localidad.CodigoLocalidad">@nombreLocalidad.ToUpper()</option>
            }
        }
    }
</select>


public ActionResult PostIndex(FormCollection form, int dplocalidad)    
{
    return View();
}
Respondido por: Anonymous

Leave a Reply

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