선택 목록을 필터링하고 싶습니다. 예약 된 수업과 같은 수업에 등록한 학생 만 드롭 다운에 표시하고 싶습니다.

고쿠 123213

viewBag를 통해 전송되는 학생 드롭 다운이있는 출석 테이블이 있습니다.

ViewBag.studentID = new SelectList(db.Students, "StudentID", "Full_Name");

출석 테이블은 특정 클래스 (성인, 청소년 또는 어린이)를위한 것입니다. 해당 클래스에만 등록 된 학생이 드롭 다운 목록에 표시되기를 바랍니다.

//Getting the scheduled classes class ID and storing it in a variable 
var ClassScheduleClassID = db.Class_Schedule.Find(id).ClassID.Value;
//checking what class the student is enrolled in and comparing it to the scheduled classes classID and storing it in a variable
var StudentClassID = db.Students
                   .Select(h => h.Enrollments
                                  .Where(m => m.ClassID == ClassScheduleClassID)
                          );

그런 다음 학생들을 viewBag를 통해 View의 드롭 다운 목록으로 보냅니다.

ViewBag.studentID = new SelectList(StudentClassID, "StudentID", "Full_Name"); 

다음과 같은보기에 표시됩니다.

<p class="right">  
    @Html.DropDownList("studentID", null, "--Select Student--", htmlAttributes: new { @class = "form-control" })
</p>

드롭 다운 텍스트에서 실행할 때`Systems.Collections.Generic.List '[BBM.Models.Enrollment] 학생 대신 등록을 통과한다고 생각합니다.

에산 사자 드

귀하의 쿼리는 실제로 잘못되었습니다. Enrollments대신 선택 하고 Students있습니다.

다음 WhereAny같은 조합으로 필터링 을 넣어야합니다 .

var StudentClassID = db.Students
                       .Where(h => 
                              h.Enrollments.Any(m => m.ClassID == ClassScheduleClassID));

이제 쿼리는 등록 된 모든 학생에게 즉 Enrollments, 변수에있는 ClassID 대한 행이 있다고 말합니다.ClassScheduleClassID

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관