Sto tentando di implementare il modello PRG utilizzando i filtri di azione [ImportModelStateFromTempData]
e [ExportModelStateToTempData]
. Questo modello funziona alla grande per i modelli piatti, ma non riesco a farlo funzionare quando ho una collezione figlio. Il mio modello assomiglia a questo:Modello MVG PRG con bambini
public class QuestionModel
{
public string QuestionText { get; set; }
public ICollection<ChoiceModel> Choices { get; set; }
}
public class ChoiceModel
{
public string ChoiceText { get; set; }
}
mio controller è la seguente:
[HttpGet, ImportModelStateFromTempData]
public ActionResult Create()
{
return View();
}
[HttpPost, ExportModelStateToTempData]
public ActionResult Create(QuestionModel model)
{
if(ModelState.IsValid)
{
// not getting here
}
return RedirectToAction("Create");
}
mio punto di vista permette all'utente di aggiungere nuovi elementi per le scelte, e ho una convalida che le scelte devono essere univoci. Quando il mio ModelState non è valido, impacchetta il ModelState in TempData e reindirizza all'azione HttpGet.
A questo punto tutti i valori del modello figlio sono in ModelState, ma non li ricostruisce quando passa il modello alla vista, quindi la mia vista mostra che sono stati aggiunti 0 figli.
C'è un modo per unire in qualche modo ModelState con il Modello o non posso utilizzare questo modello con oggetti figlio?
Questo è quello che sto facendo e non funziona con le raccolte figlio. – Dismissile