Pergunta

Eu tenho 2 grupos de botões de rádio com links correspondentes a cada um o grupo na minha aplicação ASP.NET MVC.

Abaixo está a captura de tela para uma melhor clareza:

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

Quando eu selecione o link apropriado, o valor associado com o grupo especial deve ser passado para a ação do controlador.

Por exemplo, no caso acima, enquanto clica "ligação 1", os valores de A1 ou A2 devem passado para o método de acção do controlador.

Eu tentei fazer um post para o método de ação apropriado, mas o valor associado com o segundo link também está sendo passada. Como posso obter apenas o valor selecionado a partir do link clicado?

Foi útil?

Solução

Gostaria de usar uma função javascript como o href do link. Ele iria ler o valor selecionado do grupo de botões de rádio correspondente e adicioná-lo para uma string url. Você pode definir o window.location ou definir a ação de formulário e enviar.

Outras dicas

Usando javascript você pode limpar os valores dos outros botões de rádio antes de enviar o formulário.

Outra solução pode ser ter um campo oculto e preenchê-lo com o valor apropriado usando javascript sempre que um link é clicado. Então você começa o valor deste campo e esquecer os radiobuttons.

Coloque os dois botões de rádio e o link associado a um formulário separado. Substitua o link com um botão de envio (ou enviar imagem se você quer olhar como um link). Assim você terá duas formas tanto postagem para a mesma ação do controlador. Dê seu botão enviar um name que pode ser usado dentro da ação para determinar qual botão foi clicado. Você também pode usar um campo oculto. A primeira coisa a fazer na ação é determinar qual botão foi clicado e, em seguida, ler os valores de solicitação apropriada para os botões de rádio.

Outra alternativa é ter tudo no mesmo formulário com dois botões de envio e nomes diferentes.

Ver

@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; }

    }

CONTROLADOR

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 em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top