Прошу прощения, если заголовок не очень понятен. Итак, я хочу следовать. У меня есть модельный класс под названием «Класс», который содержит список «Студентов». У меня есть представление, которое показывает список студентов. Из этого контрольного списка я хочу передать выбранных студентов обратно в контроллер, где я обновлю базу данных, и в моем классе появятся новые студенты, а у добавленных студентов будет новый класс.
Вот что я сделал. далеко, но теперь я застрял. Заранее спасибо.
Это действия моего контроллера
[HttpGet]
public ActionResult AddStudents(int? id)
{
List<Student> students = (from std in db.Students
where std.St_cl_fk_id == null select std).ToList();
//ViewBag.students = students;
return View("Add_Students",students);
}
[HttpPost, ActionName("AddStudents")]
public ActionResult AddStudentsPost(int? id,List<Student> students)
{
if(ModelState.IsValid)
{
var temp = id;
Class @class = db.Classes.Find(id);
foreach (var item in students)
{
if (Request.Form[item.St_id.ToString()] != null)
{
@class.Students.Add(item);
}
}
db.Entry(@class).State = EntityState.Modified;
db.SaveChanges();
return RedirectToAction("Index", "Classes");
}
return View("Add_Student");
}
Вот мое мнение
@model IEnumerable<GMASchoolProject.Models.Student>
@{
ViewBag.Title = "Add_Students";
}
<h4>Student List</h4>
@using (Html.BeginForm())
{
<div class="row">
<div class="col-lg-8 col-lg-offset-2">
<div class="panel panel-default">
<div class="panel-heading">
Check Students
</div>
<div class="form-group">
<div class="col-md-10">
<table>
@foreach (var std in Model)
{
<tr>
<td><input type="checkbox" name="@std.St_id" value="@std.IsSelected" /></td>
<td>@Html.Label((string)std.St_name)</td>
</tr>
}
</table>
</div>
</div>
<div class="form-group" style="margin:15px,0,15px,0;">
<div class="col-md-offset-5 col-md-2">
<input type="submit" value="Add Students" class="btn btn-primary" />
</div>
</div>
</div>
</div>
</div>
}
<div>
@Html.ActionLink("Back to List", "Index", null, new { @class = "btn btn-danger" })
</div>
@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
}
Пожалуйста, дайте мне знать, если я что-то еще делаю неправильно, я новичок ie в этой области. Спасибо