> 백엔드 개발 > C++ > ASP.NET MVC 5에서 질문별로 라디오 버튼을 올바르게 그룹화하는 방법은 무엇입니까?

ASP.NET MVC 5에서 질문별로 라디오 버튼을 올바르게 그룹화하는 방법은 무엇입니까?

Mary-Kate Olsen
풀어 주다: 2024-12-29 00:25:08
원래의
292명이 탐색했습니다.

How to Properly Group Radio Buttons by Question in ASP.NET MVC 5?

ASP.NET MVC 5에서 라디오 버튼 그룹화

문제:

ASP에서 질문별로 라디오 버튼을 그룹화하는 경우 .NET MVC 5 보기에서는 모든 라디오 버튼이 단일 그룹에 배치되어 여러 질문에 대한 답변을 선택할 수 없습니다. 독립적으로.

해결책:

라디오 버튼을 적절하게 그룹화하려면 각 질문에 고유한 이름 속성이 있는지 확인해야 합니다. 이는 루프 인덱스와 뷰 모델을 사용하여 라디오 버튼을 입력된 모델에 바인딩함으로써 달성할 수 있습니다.

뷰 모델:

먼저, 뷰 모델을 생성합니다. 데이터를 표현하고 생성하는 데 사용됩니다. form.

public class QuestionVM
{
  public int ID { get; set; }
  public string Text { get; set; }
  public int? SelectedAnswer { get; set; }
}

public class SubjectVM
{
  public int? ID { get; set; }
  public string Name { get; set; }
  public List<QuestionVM> Questions { get; set; }
}

public class StudentVM
{
  public int ID { get; set; }
  public string Name { get; set; }
  public List<SubjectVM> Subjects { get; set; }
}
로그인 후 복사

View:

뷰에서 @Html.BeginForm 메서드를 사용하여 양식 요소를 생성한 다음 @를 사용하여 라디오 버튼을 생성합니다. Html.RadioButtonFor 메서드.

@model YourAssembly.StudentVM
@using(Html.BeginForm())
{
  // Hidden field for unique student identifier
  @Html.HiddenFor(m => m.ID)
  
  // Student name (with no binding)
  @Html.DisplayFor(m => m.Name)
  
  // Iterate over subjects and questions  
  for(int i = 0; i < Model.Subjects.Count; i++)
  {
    // Hidden field for subject identifier (if any)
    @Html.HiddenFor(m => m.Subjects[i].ID)
    
    // Display subject name
    @Html.DisplayFor(m => m.Subjects[i].Name)
    
    for (int j = 0; j < Model.Subjects[i].Questions.Count; j++)
    {
      // Hidden field for question identifier
      @Html.HiddenFor(m => m.Subjects[i].Questions[j].ID)
      
      // Display question text (with no binding)
      @Html.DisplayFor(m => m.Subjects[i].Questions[j].Text)
      
      foreach(var answer in Model.Subjects[i].Questions[j].PossibleAnswers )
      {
        // Bind radio button to property on QuestionVM
        @Html.RadioButtonFor(m => m.Subjects[i].Questions[j].SelectedAnswer, answer.ID, new { id = answer.ID})
        <label for="@answer.ID">@answer.Text</label>
      }
    }
  }
  
  // Submit button
  <input type="submit" value="save" />
}
로그인 후 복사

컨트롤러:

양식 제출을 처리하는 컨트롤러 작업에서는 StudentVM 모델을 통해 제출된 데이터에 액세스할 수 있습니다.

[HttpPost]
public ActionResult Edit(StudentVM model)
{
  // Save and redirect (not shown)
}
로그인 후 복사

뷰 모델과 @Html.RadioButtonFor 메소드를 사용하면 각 질문에 고유한 이름 속성이 있는지 확인할 수 있습니다. 그러면 라디오 버튼을 올바르게 그룹화할 수 있습니다.

위 내용은 ASP.NET MVC 5에서 질문별로 라디오 버튼을 올바르게 그룹화하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿