【发布时间】:2015-11-04 18:37:13
【问题描述】:
好吧!我正在使用 ASP.MVC5。我要做的是循环一个包含对象的数组,每个对象都包含数组属性:
我有这门课:
public class MylistModels
{
public string Subtitle { get; set; }
public string[] Question { get; set; }
}
逻辑是:
我有一个 HTML 形式的 POST 表单(如果需要,我可以添加更多字段):
<input type="text" placeholder="Subtitle here" name="lists[0].Subtitle" />
<input type="text" placeholder="Subtitle here" name="lists[0].Question" />
<input type="text" placeholder="Subtitle here" name="lists[0].Question" />
<input type="text" placeholder="Subtitle here" name="lists[1].Subtitle" />
<input type="text" placeholder="Subtitle here" name="lists[1].Question" />
<input type="text" placeholder="Subtitle here" name="lists[1].Question" />
<input type="text" placeholder="Subtitle here" name="lists[2].Subtitle" />
<input type="text" placeholder="Subtitle here" name="lists[2].Question" />
<input type="text" placeholder="Subtitle here" name="lists[2].Question" />
当我点击保存时,我将它发送到一个动作:
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create(List<MylistModels> lists)
{
if (ModelState.IsValid)
{
//how to loop the arrays that contains a subtitle with questions array?
return RedirectToAction("Index");
}
return View();
}
当我在操作中收到它时,它看起来像这样:
我收到了一系列对象,每个对象都有与您的问题相关的副标题
Obs.:“副标题”在每个对象中总是一个,“问题”我可以有一个或多个。
问题:
如何在每个对象数组中循环并在该对象的每个问题中再次循环?
我正在尝试这样做,但它不起作用:
SubtitleChecklist subtitleCheckList = new SubtitleChecklist();
QuestionChecklist questionChecklist = new QuestionChecklist();
foreach (var list in lists)
{
subtitleCheckList.IdChecklist = idChecklist;
subtitleCheckList.Subtitle = list.Subtitle;
db.subtitleCheckList.Add(subtitleCheckList);
db.SaveChanges();
int idSubtitleChecklist = subtitleCheckList.Id;
for (int i = 0; i < list.Question.Length; i++)
{
questionChecklist.Question = list.Question[i];
questionChecklist.IdSubtitle = idSubtitleChecklist;
db.QuestionChecklist.Add(questionChecklist);
db.SaveChanges();
}
}
【问题讨论】:
-
你能解释为什么它不起作用吗?你调试了吗?结果如何?
-
你在哪里设置 idChecklist?
-
这是另一部分的代码,在我的代码中是可以的。