查看
@for (int i = 1; i < Convert.ToInt32(Model.qc_choice) + 1; i++)
{
<span>Question @i</span>
@Html.TextAreaFor(m => m.MTfull[i].qc_selectedchoice)
<span>Answer @i</span>
@Html.TextBoxFor(m => m.MTfull[i].qc_answer)
<br />
}
<p>
<input type="submit" value="Create" name="submitBtn" />
</p>
控制器
[HttpGet]
public ActionResult checkMT(string quiz_id)
{
List<Models.QuizMaker> qm = new List<Models.QuizMaker>();
var model = new Models.QuizMaker
{
act_id = quiz_id,
};
return View(model);
}
[HttpPost]
public ActionResult checkMT(QuizMaker qm)
{
return RedirectToAction("createMatchingType", "QuizMaker", new { quiz_id = qm.act_id, choice = qm.qc_choice });
}
[HttpGet]
public ActionResult createMatchingType(string quiz_id, string choice)
{
List<Models.QuizMaker> qm = new List<Models.QuizMaker>();
var model = new Models.QuizMaker
{
act_id = quiz_id,
qc_choice = choice,
};
return View(model);
}
这是qc_choice的填充方式来自用户
然后它将循环控制用户输入的数量。
但无论我做什么List MTfull模型的值在我的控制器中始终为null帮助非常感谢。
答案 0 :(得分:0)
问题出现在for循环语句中。
@ Html.TextAreaFor(m =&gt; m.MTfull [i] .qc_selectedchoice)
意味着期望索引为[i]且i = 1,
如果1改为将其改为0,则它不接受索引。
列表接受索引为0而不是索引为1