Rumah >pembangunan bahagian belakang >C++ >Bagaimana Berkesan Mengendalikan Model Binding dengan Senarai dalam ASP.NET MVC 4?
Apabila cuba untuk mengikat ILlist item pada paparan, isu boleh timbul dengan kaedah HttpPost. Walaupun sumber berguna seperti artikel Phil Haack wujud, ia mungkin tidak menggambarkan kemungkinan kemas kini dalam MVC 4. Untuk menangani perkara ini, mari kita terokai penyelesaian terperinci.
public class MyViewModel { public List<Person> Persons{get;set;} }
@model MyViewModel @for( int i = 0; i < Model.Persons.Count(); ++i) { @Html.HiddenFor(m => m.Persons[i].PersonId) @Html.EditorFor(m => m.Persons[i].FirstName) @Html.EditorFor(m => m.Persons[i].LastName) }
[HttpPost]public ViewResult(MyViewModel vm) { ... }
Perhatikan bahawa hanya sifat dengan medan input akan mempunyai nilai selepas pos balik. Selain itu, pengikatan model MVC机制 hanya mengenali ID berturut-turut. Pertimbangkan contoh ini apabila item disembunyikan secara bersyarat:
@for( int i = 0; i < Model.Persons.Count(); ++i) { if(i != 4)//conditionally hide 5th item, { //but BUG occurs on postback, all items after 5th will not be bound to the the list @Html.HiddenFor(m => m.Persons[i].PersonId) @Html.EditorFor(m => m.Persons[i].FirstName) @Html.EditorFor(m => m.Persons[i].LastName) } }
Dalam kes ini, hanya empat item pertama akan diikat pada pos belakang. Untuk mengelakkan perkara ini, pastikan ID berturut-turut untuk semua item dalam IList.
Atas ialah kandungan terperinci Bagaimana Berkesan Mengendalikan Model Binding dengan Senarai dalam ASP.NET MVC 4?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!