我有一个带有 /Admin/NewCourse 页面的管理部分,我想用它来通过表单保存新添加的课程详细信息的详细信息。课程模型是首先使用存储库模式使用 POCO 创建的。
在我看来,我有以下几点:
@using(Html.BeginForm("NewCourse","Admin",FormMethod.Post))
{
<div class="row">
<div class="twelve columns">
<div class="row">
<div class="six columns">
@Html.LabelFor(c => c.Course.Name)
@Html.TextBoxFor(c => c.Course.Name)
</div>
<div class="six columns">
@Html.LabelFor(c => c.Course.Author)
@Html.TextBoxFor(c => c.Course.Author)
</div>
<div class="row">
<div class="six columns">
@Html.LabelFor(c => c.Course.UploadDate)
@Html.TextBoxFor(c => c.Course.UploadDate)
</div>
<div class="six columns">
@Html.LabelFor(c => c.Course.ExpiryDate)
@Html.TextBoxFor(c => c.Course.ExpiryDate)
</div>
</div>
<div class="row">
<div class="twelve columns">
@Html.LabelFor(c => c.Course.Description)
@Html.TextAreaFor(c => c.Course.Description)
</div>
</div>
<div class="row">
<div class="six columns">
@Html.LabelFor(c => c.Course.ParticipationPoints)
@Html.TextBoxFor(c => c.Course.ParticipationPoints)
</div>
</div>
</div>
</div>
<input type="submit" value="Submit button"/>
</div>
}
在我的控制器中,我以下列方式设置了一个 HTTP 帖子:
[HttpPost]
public ActionResult NewCourse(AdminViewModel model)
{
Course newCourse = new Course();
newCourse.Name = model.Course.Name;
newCourse.Author = model.Course.Author;
newCourse.UploadDate = model.Course.UploadDate;
newCourse.ExpiryDate = model.Course.ExpiryDate;
newCourse.Description = model.Course.Description;
newCourse.ParticipationPoints = model.Course.ParticipationPoints;
return View(model);
}
正如您从上面的 POST 中看到的,我正在传递一个 AdminViewModel,其中包含以下代码行:
private Repository<Course> courseRepository;
如何更新控制器中的 POST 方法以将新课程的更改保存到 courseRepository 列表中?