2013-07-04 3 views
0

Je travaille dans MVC4 .Dans ce que je suis en utilisant le code suivant pour radio buttons:Comment enregistrer la valeur de bouton radio sélectionnée dans MVC4

Modèle:

public class PlatInspHistoryModels 
{ 
    public List<RadioButtonItem> RadioButtonList { get; set; } 
    public string SelectedRadioButton { get; set; } 
} 

public class RadioButtonItem 
{ 
    public string Name { get; set; } 
    public bool Selected { get; set; } 
    public string Value { get; set; } 
    public bool Visible { get; set; } 
} 

contrôleur:

public ActionResult Index() 
    { 
     var viewModel = new PlatInspHistoryModels 
     { 
      RadioButtonList = new List<RadioButtonItem> 
                 { 
                  new RadioButtonItem 
                   { 
                    Name = "Topside", Value = "T",Selected = true,Visible = true 
                   }, 
                  new RadioButtonItem 
                   { 
                    Name="Underwater", Value = "U",Selected = false,Visible = true 
                   } 
                 } 
     }; 
     return View(viewModel); 
    } 

Afficher:

@using (Html.BeginForm("Index", "PlatInspHistory", FormMethod.Post, new { id = "form" })) 
    { 
    <table cellpadding="4" cellspacing="4"> 
       <tr> 
        <td> 

         foreach (Cairs2.Models.RadioButtonItem item in Model.RadioButtonList) 
         { 
          @Html.DisplayFor(i => item.Name) 
          @Html.RadioButton("PlatInspHistoryModels.SelectedRadioButton", item.Value, item.Selected, new { @class = "formCheckbox", tabindex = "1" })  
         } 


        </td> 
    </tr> 
      </table> 
    } 

Problème:

À partir du code ci-dessus, je suis capable de lier les boutons radio comme une liste. Mais comment je peux être sélectionné la valeur radio sur save event donné ci-dessous:

[HttpPost] 
    public ActionResult Index(PlatInspHistoryModels model) 
    { 
    } 
+0

Dans votre 'ActionResult Index' vous ne recevrez valeur de la radio sélectionnée, pas de liste. – YD1m

Répondre

1

Remplacez votre boucle foreach avec cela avec une boucle for et utiliser les aides fortement typés:

for (var i = 0; i < Model.RadioButtonList.Count; i++) 
{ 
    @Html.DisplayFor(x => x.RadioButtonList[i].Name) 
    @Html.HiddenFor(x => x.RadioButtonList[i].Name) 
    @Html.RadioButtonFor(x => x.SelectedRadioButton, Model.RadioButtonList[i].Value, new { @class = "formCheckbox", tabindex = "1" })  
} 
+0

Ohh j'avais enlevé la deuxième forme maintenant.But @Darin comment j'obtiendrai la valeur choisie sur enregistrer? – Sunny

+0

Quelle est l'utilisation de la boucle ici? – Sunny

+0

Désolé, j'ai fait une erreur. Le RadioButton doit être lié à la propriété 'SelectedRadioButton' sur le modèle. J'ai mis à jour ma réponse. –

0

Je travaille dans MVC5, i vous avez des questions QCM sous forme de boutons radio qui sont extraites de la base de données au hasard est my` [Table (« QCM »)] ici

public class MCQS 
     {   [Key]  
     public int Qid { get; set; } 
     [Required(ErrorMessage = "Please Enter Skill.")]  
     public string Skill { get; set; }  
     [Required(ErrorMessage = "Please Enter Question.")]  
     public string Question { get; set; }  
     [Required(ErrorMessage = "Please Enter Level.")]  
     public string Levels { get; set; }  
     [Required(ErrorMessage = "Please Enter Options.")] 
     public string AnsOpt1 { get; set; } 
     [Required(ErrorMessage = "Please Enter Options.")]  
     public string AnsOpt2 { get; set; }  
     [Required(ErrorMessage = "Please Enter Options.")]  
     public string AnsOpt3 { get; set; }  
    [Required(ErrorMessage = "Please Enter Options.")] 
     public string AnsOpt4 { get; set; }  
    [Required(ErrorMessage = "Please Set Weightage.")] 

et le contrôleur

public ActionResult Index()  
{    return View((from a in ne.Mcqs orderby Guid.NewGuid() select a).Take(2).ToList());   } 

et vue

@foreach (var item in Model) 
{<tr>   
<td> 
@Html.DisplayFor(modelItem=>item.Qid)</td>  
    <td> @Html.DisplayFor(modelItem => item.Question)</td> <td>   
     @Html.RadioButton("skillsq1", new { id = "1"}). 
      @Html.DisplayFor(modelItem => item.AnsOpt1)</td><td>   
    @Html.RadioButton("skillsq1", new { id = "2"}) 
     @Html.DisplayFor(modelItem => item.AnsOpt2) </td><td>  
    @Html.RadioButton("skillsq1", new { id = "3" }) 
@Html.DisplayFor(modelItem => item.AnsOpt3) </td> <td>  

@Html.RadioButton("skillsq1", new { id = "4" }) 
@Html.DisplayFor(modelItem => item.AnsOpt4) </td> </tr>}  

je veux demander comment j'obtenir la valeur du bouton radio vérifiée de la question brassé

Questions connexes