我正在尝试将数组从我的视图发送到控制器,以将其保存在数据库中。
用户将选中几个复选框,每个复选框都应保存在自己的行中。
但是,什么都没有正确发送,我收到了此消息。
System.NullReferenceException:对象引用未设置为对象的实例。
我有一个非常简单的表,其中包含以下内容:
public class Answer
{
public int Id { get; set; }
public int OptionID { get; set; }
public int QuestionID { get; set; } = 1;
}
在视图中,我具有格式如下的复选框列表:
<input type="checkbox" name="OptionID[0]" value="1" class="single-checkbox"> checkbox 1<br>
<input type="checkbox" name="OptionID[1]" value="2" class="single-checkbox"> checkbox 2<br>
<input type="checkbox" name="OptionID[2]" value="3" class="single-checkbox"> checkbox 3<br>
<input type="checkbox" name="OptionID[3]" value="4" class="single-checkbox"> checkbox 4<br>
在我的控制器中:
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<ActionResult> Create(List<Answer> answers)
{
if (ModelState.IsValid)
{
using (ApplicationDbContext db = new ApplicationDbContext())
{
foreach (var i in answers)
{
db.Answers.Add(i);
}
await db.SaveChangesAsync();
}
return RedirectToAction("Index");
}
return View(answers);
}