我有一个问题要问你们。我正在编写一个应用程序,我可以在其中创建具有多个答案的练习。几天前我问了一些问题,现在它完全有效。
Asp.net MVC with Entity,使用 jquery 将数据传递到 List。不工作
源头已经不一样了。我只有一个关于modelstate.isvalid
.
让我给你们举个例子。我有一个ExerciseModel
带有列表的答案。使用 jQuery 即时创建新答案并且EditorTemplates
效果很好。唯一的问题是验证现在永远不会起作用。我想添加modelstate.isvalid
到我httpPost
的验证方法中。
问题是关于编辑/创建新答案
public ActionResult EditQuestion(int id)
{
ExerciseModel exercisemodel = db.Exercise.Find(id);
if (exercisemodel == null)
{
return HttpNotFound();
}
exercisemodel.Answers = GetAnswers(id);
ViewBag.CourseId = new SelectList(db.Course, "CourseId", "CourseName",
exercisemodel.CourseId);
return View(exercisemodel);
}
[HttpPost]
public ActionResult EditQuestion(ExerciseModel exercisemodel)
{
foreach (var answer in exercisemodel.Answers)
{
db.Entry(answer).State = answer.AnswerId == 0 ?
EntityState.Added :
EntityState.Modified;
}
db.SaveChanges();
return RedirectToAction("Index");
}
这样做的原因是因为我可以创建新答案,同时我也可以编辑现有答案并将它们添加到我的答案列表中ExerciseModel
。所以ExerciseModel
当我创建新答案时我的变化。这就是为什么modelstate.isvalid
永远不会是真的原因。
我怎样才能让它工作?