【发布时间】:2020-06-16 11:58:39
【问题描述】:
如果标题不是很清楚,我深表歉意。 所以,我想做的是跟随。 我有一个名为“类”的模型类,其中包含一个“学生”列表。我有一个显示学生清单的视图。从该清单中,我想将选定的学生传回控制器,在那里我将更新数据库,我的班级将有新学生,添加的学生将有一个新班级。
这是我到目前为止所做的,但现在我被卡住了。提前致谢。
这些是我的控制器操作
[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")
}
如果我做错了什么,请告诉我,我是这方面的新手。谢谢
【问题讨论】: