Sto cercando di associare un array dinamico di elementi di un modello di vista cui vi possono essere indici mancanti nel htmlarray vincolante con elementi mancanti in asp.net mvc
esempio con il modello vista
class FooViewModel
{
public List<BarViewModel> Bars { get; set; }
}
class BarViewModel
{
public string Something { get; set; }
}
e html
<input type="text" name="Bars[1].Something" value="a" />
<input type="text" name="Bars[3].Something" value="b" />
<input type="text" name="Bars[6].Something" value="c" />
momentaneamente, barre sarà solo essere nullo. come posso ottenere che il modello legatore ignori gli elementi mancanti? vale a dire quanto sopra si legherebbe a:
FooViewModel
{
Bars
{
BarViewModel { Something = "a" },
BarViewModel { Something = "b" },
BarViewModel { Something = "c" }
}
}
Molto vicino, ma la risposta accettata in questo url ha una soluzione più completa: http://stackoverflow.com/questions/8598214/mvc3-non-sequential-indices-and-defaultmodelbinder – Levitikon
@Levitikon - La soluzione accettata nel tuo link è eccessivo. Non è necessario specificare un '.Index' per ogni elemento. Ho usato l'approccio di cui sopra numerose volte senza aver bisogno degli ingressi extra nascosti descritti nel tuo link. Inoltre, Phil Haack era nel team di sviluppo di ASP.NET MVC, quindi sono abbastanza sicuro di ciò che ha scritto nel suo blog. – amurra
@amurra nell'articolo di Haack dice di usare un input nascosto separato per ogni campo, quindi sembrerebbe che sia necessario. – Mykroft