나는 지난 며칠 동안 이해하려고 노력한 초보자 질문이 있습니다. 누군가가 프로그래밍 흐름을 이해하는 데 도움이되기를 바랍니다.보기의 모델 및 확인란보기
public class Student
{
public int studentID { get; set; }
public string studentName { get; set; }
public strin studentGrade {get; set; }
}
public class StudentDBContext : DbContext
{
public DbSet<Student> Students { get; set; }
}
내가 다음에 승진 할 수있는 학생들이 선택할 수 있도록 내가 추가 확인란과 함께보기에 그것을 표시 할 : 나는 모델이 가정
는, 정보는 데이터베이스에 저장됩니다 학년.
public class StudentViewModel
{
public bool promoted { get; set; }
public Student stu { get; set; }
}
을하지만이 그것을 할 수있는 방법에 붙어 : 나는 한 가지 방법은 뷰 모델에 넣어 그것이 할 것을 읽어? 그렇다면 어떻게 옆에있는 확인란을 선택하여 모든 학생들을 표시 할 것인가를 결정할 수 있습니다. 그 후, 체크 박스가 체크 된 학생들을 위해 모든 학년을 업데이트하고 싶습니다. 예 :
학생 A, 학생 B, 학생 D가 1 학년에서 2 학년으로 승격되었습니다. 학생을 표시하고 학생 A, B 및 D를 진술하고 성적을 업데이트하기 위해 제출하십시오.
단계별 예제가 크게 감사하겠습니다.
업데이트 1 :
컨트롤러 :
[HttpGet]
public ViewResult CheckBox()
{
var studentViewModels = db.Students.Select(m => new StudentViewModel()
{
stu = m
}).ToList();
return View(studentViewModels);
}
[HttpPost]
public ActionResult CheckBox(IList<studentViewModel> list)
{
foreach (var stuUpdate in list.Where(m => m.promoted))
{
var stuRow = db.Students.Find(stuUpdate.stu.studentID);
stuRow.studentName = stuRow.studentName + "1";
db.Entry(stuRow).State = EntityState.Modified;
db.SaveChanges();
return RedirectToAction("CheckBox");
}
return RedirectToAction("CheckBox");
}
보기 :
그러나 현재 다음과 같은 오류에 의해 명중@model IList<School.ViewModels.StudentViewModel>
@using (Html.BeginForm())
{
<table>
<tr>
<th>
</th>
<th>
student ID
</th>
<th>
student name
</th>
<th>
student grade
</th>
</tr>
@foreach (var item in Model) {
<tr>
<td>
@Html.CheckBoxFor(modelItem => item.promoted)
@Html.HiddenFor(modelItem => item.stu.studentID)
</td>
<td>
@Html.DisplayFor(modelItem => item.stu.studentID)
</td>
<td>
@Html.DisplayFor(modelItem => item.stu.studentName)
</td>
<td>
@Html.DisplayFor(modelItem => item.stu.studentGrade)
</td>
</tr>
}
</table>
<input type="submit" value="save" />
}
: 값은 null 일 수 없습니다. 매개 변수 이름 : 소스
Source Error:
foreach (var stuUpdate in list.Where(m => m.promoted))
도움 누군가? – blurryMVC