2013-07-04 6 views
0

Я работаю в MVC4 .В этом я использую следующий код для radio buttons:Как сохранить выбранное значение радио кнопки в MVC4

Модель:

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

контроллер:

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

View:

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

Проблема:

Из приведенного выше кода я в состоянии связать радиокнопки в виде списка. Но как я могу получить выбранное значение радио на save event ниже:

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

В вашем 'ActionResult Index' вы получите только значение выбранного радио, а не список. – YD1m

ответ

1

Замените foreach петлю с этим с for цикла и использовать строго типизированные хелперы:

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

О, я сейчас удалил вторую форму. Но @Darin, как я получу выбранное значение для сохранения? – Sunny

+0

Для чего нужен цикл for? – Sunny

+0

Извините, я допустил ошибку. RadioButton должен быть привязан к свойству «SelectedRadioButton» на модели. Я обновил свой ответ. –

0

я работаю в MVC5, я есть ВНО вопросы в виде радио-кнопок, которые случайным образом выбираются из базы данных здесь my` [Table («ВНО»)]

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.")] 

и контроллер

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

и вид

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

я хочу спросить, что, как я получаю значение проверяемой кнопки радиоприема перемешивается вопрос

Смежные вопросы