Come recuperare l'elemento selezionato da un gruppo di pulsanti di opzione dall'applicazione ASP.NET MVC?

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

Domanda

Ho 2 gruppi di pulsanti di opzione con collegamenti corrispondenti a ciascuno dei gruppi nella mia applicazione ASP.NET MVC.

Di seguito la schermata per una migliore chiarezza:

alt text http://img21.imageshack.us/img21/7959/radiogroups .png

Quando seleziono il collegamento appropriato, il valore associato a un determinato gruppo deve essere passato all'azione del controller.

Ad esempio nel caso precedente, facendo clic su " link 1 " ;, i valori A1 o A2 devono essere passati al metodo di azione del controller.

Ho provato a scrivere un post sul metodo di azione appropriato, ma anche il valore associato al secondo link viene superato. Come posso ottenere solo il valore selezionato dal link cliccato?

È stato utile?

Soluzione

Userei una funzione javascript come href del link. Leggerebbe il valore selezionato del corrispondente gruppo di pulsanti di opzione e lo aggiungerebbe a una stringa url. È possibile impostare window.location o impostare l'azione del modulo e inviare.

Altri suggerimenti

Utilizzando javascript è possibile cancellare i valori degli altri pulsanti di opzione prima di inviare il modulo.

Un'altra soluzione può avere un campo nascosto e popolarlo con il valore appropriato usando javascript ogni volta che si fa clic su un collegamento. Quindi ottieni il valore di questo campo e dimentica i pulsanti radio.

Metti i due pulsanti di opzione e il link associato in un modulo separato. Sostituisci il link con un pulsante di invio (o invia l'immagine se vuoi che assomigli ad un link). Quindi avrai due moduli che invieranno entrambi alla stessa azione del controller. Assegna al tuo pulsante di invio un name che può essere usato all'interno dell'azione per determinare quale pulsante è stato cliccato. Puoi anche usare un campo nascosto. La prima cosa da fare nell'azione è determinare quale pulsante è stato fatto clic e quindi leggere i valori di richiesta appropriati per i pulsanti di opzione.

Un'altra alternativa è avere tutto nella stessa forma con due pulsanti di invio e nomi diversi.

Visualizza

@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"/>
}

MODELLO

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

    }

CONTROLLER

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);
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top