MVC 发布表单返回空值
本文关键字:返回 空值 表单 布表单 MVC | 更新日期: 2023-09-27 17:57:03
我正在尝试为测试制作一个动态形式。我的问题是当我提交时,在控制器列表 gq 中的 post 方法为空,但我希望用表单中填写的数据填充。我可以猜测它必须与 @Html.EditorForModel() 和数据绑定有关,但我不完全了解它是如何工作的。知道吗?谢谢
型:
public class GeneratedQuestions
{
public int GeneratedQuestionsId { get; set; }
public string QuestionText { get; set; }
public List<StudentAnswer> QuestionAnswers { get; set; }
public int StudentTestsId { get; set; }
public virtual StudentTest StudentTests { get; set; }
}
视图:
@model IEnumerable<Project.Models.GeneratedQuestions>
@{
ViewBag.Title = "StartTest";
}
@using (Html.BeginForm())
{
@Html.EditorForModel()
foreach (var question in Model)
{
<br />
<h1>@question.QuestionText</h1>
foreach (var answer in question.QuestionAnswers)
{
@Html.CheckBoxFor(x => answer.WasChecked)
@Html.DisplayFor(x => answer.AnswerText)
@Html.HiddenFor(x => answer.GeneratedQuestionsId)
<br />
}
}
<input type="submit" value="Submit" />
}
控制器:
public ActionResult StartTest(int id)
{
List<GeneratedQuestions> generatedQuestions = db.StudentTests.Find(id).GeneratedQuetions.ToList();
return View(generatedQuestions);
}
[HttpPost]
public ActionResult StartTest(List<GeneratedQuestions> gq)
{
//stuff
return RedirectToAction("Index");
}
如图所示:
ASP.NET MVC 4 - 用于循环帖子模型集合属性,但 foreach 不
MVC 助手讨厌 foreach 循环。进行 for 循环,一切应该都可以正常工作。
编写两个循环并使用 Web 开发人员工具检查它们,以查看"id"和"name"属性的差异。