好吧!我正在使用ASP.MVC5。我試圖做的是循環包含對象的數組,每個對象包含數組屬性:ASP.MVC5 - Foreach with property array
我有這個類:
public class MylistModels
{
public string Subtitle { get; set; }
public string[] Question { get; set; }
}
的邏輯是:
我有一個POST形式HTML(我可以添加多個字段,如果我想):
<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();
}
當我收到它的作用,它看起來像這樣:
我收到對象的數組,每個人都有你與你的問題
實驗值:在「字幕」字幕始終是一個在每個對象「問題」我可以有一個或多個。
問題:
如何在每個對象數組中循環並在每個此對象的問題中再次循環?
我試圖做這樣的,但它不工作:
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();
}
}
你能解釋爲什麼它不起作用嗎?你調試了嗎?結果是什麼? – Marusyk
你在哪裏設置idChecklist? – FailedUnitTest
這是來自代碼的另一部分,在我的代碼中可以。 – Victor