¿Cómo recuperar el elemento seleccionado de un grupo de botones de opción de la aplicación ASP.NET MVC?

StackOverflow https://stackoverflow.com/questions/1629115

Pregunta

Tengo 2 grupos de botones de radio con enlaces correspondientes a cada uno de los grupos en mi aplicación ASP.NET MVC.

A continuación se muestra la captura de pantalla para una mejor claridad:

texto alternativo http://img21.imageshack.us/img21/7959/radiogroups .png

Cuando selecciono el enlace apropiado, el valor asociado con el grupo en particular debe pasarse a la Acción del controlador.

Por ejemplo, en el caso anterior, al hacer clic en el "enlace 1", los valores A1 o A2 deben pasar al método de acción del controlador.

Intenté hacer una publicación en el método de acción apropiado, pero el valor asociado con el segundo enlace también se está pasando. ¿Cómo puedo obtener solo el valor seleccionado del enlace en el que se hizo clic?

¿Fue útil?

Solución

Usaría una función de JavaScript como href del enlace. Leería el valor seleccionado del grupo de botones de opción correspondiente y lo agregaría a una cadena de URL. Puede configurar window.location o establecer la acción del formulario y enviarlo.

Otros consejos

Usando javascript puede borrar los valores de los otros botones de opción antes de enviar el formulario.

Otra solución puede ser tener un campo oculto y llenarlo con el valor apropiado usando javascript cada vez que se hace clic en un enlace. Luego obtienes el valor de este campo y te olvidas de los botones de radio.

Coloque los dos botones de radio y el enlace asociado en un formulario separado. Reemplace el enlace con un botón de envío (o envíe una imagen si desea que se vea como un enlace). Entonces tendrá dos formularios que se publicarán en la misma acción del controlador. Dele a su botón de enviar un name que se puede usar dentro de la acción para determinar en qué botón se hizo clic. También podría usar un campo oculto. Lo primero que debe hacer en la acción es determinar en qué botón se hizo clic y luego leer los valores de solicitud adecuados para los botones de opción.

Otra alternativa es tener todo en la misma forma con dos botones de envío y nombres diferentes.

View

@model MvcApplication2.Models.CountryModel
@using (Html.BeginForm())
{
            @Html.RadioButton("Gender", "Male" new { @checked = "checked" }) Male
            @Html.RadioButton("Gender", "Female")Female
            <input type="submit" text="submit"/>
}

MODELO

   public class CountryModel
    {
        public string Gender{ get; set; }

    }

CONTROLADORA

public ActionResult Index()
{                    
    return View();
}
[HttpPost]
public ActionResult Index(CountryModel model)
{
    //for radio button
    CountryModel dd = new CountryModel();
    string date1 = model.RDB;
    return View(model);
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top