2016-12-27 112 views
0

我想在表單中有兩組單選按鈕並獲取已選中的項目,避免選擇多個單選按鈕的可能性,但只要我添加一個名稱我的單選按鈕輸入,然後我不能再看到我的模型中檢查哪個項目。@ Html.RadioButtonFor允許單選允許選定的選項

這是我的觀點:

... 
@using (Html.BeginForm("Validate", "Quiz")) 
{ 
    @for (int i = 0; i < Model.questions.Count(); i++) 
    { 
      <ul> 
       @{ int j = 0; } 
       @foreach (var ch in Model.questions[i].choices) 
       { 
         <li> 
          @Html.RadioButtonFor(m => m.questions[i].choices[j].isChecked, true, new { id = ch.choiceId}) @ch.choiceTitle 
         @Html.HiddenFor(m => m.questions[i].choices[j].isChecked) 
         </li> 
       } 
      </ul> 
     } 

<input type="submit" value="Valider" /> 

} 

這裏是我的結構:

 public class QuizViewModel 
     { 
      public string quizTitle { get; set; } 
      public string quizListDisplay { get; set; } 
      public List<QuizQuestion> questions { get; set; } 
      public Guid owner { get; set; } 
     } 

    public class QuizQuestion 
    { 
     public int questionId { get; set; } 
     public int order { get; set; } 
     public string questionTitle { get; set; } 
     public List<QuizChoice> choices { get; set; } 
     public bool isSingleResponseQuestion { get; set; } 
    } 

    public class QuizChoice 
    { 
     public int choiceId { get; set; } 
     public string choiceTitle { get; set; } 
     public int index { get; set; } 
     public bool isCorrectAnswer { get; set; } 
     public bool isChecked { get; set; } 
     public string feedback { get; set; } 
     public int selectedAnswer { get; set; } 
    } 

但問題是,我可以在同一個組中選擇幾個單選按鈕,所以我說這個代碼RadioButtonFor之後的ID:

@Name =「group」+ i

但是然後我無法獲得我的模型中的isChecked。 我在這裏做錯了什麼?如何解決這個問題? 謝謝 最佳

回答

0

要解決我添加一個字段selectedChoiceId上我的課QuizQuestion和所使用的RadioButtonFor如下問題:

@ Html.RadioButtonFor(M => m.questions [I] .selectedChoiceId, ch.choiceId)

RadioButtonFor的第一個字段用於將單選按鈕組合在一起,因此對於單個問題它應該與所有單選按鈕相同