Rumah > pembangunan bahagian belakang > C++ > Bagaimana Berkesan Mengendalikan Model Binding dengan Senarai dalam ASP.NET MVC 4?

Bagaimana Berkesan Mengendalikan Model Binding dengan Senarai dalam ASP.NET MVC 4?

Susan Sarandon
Lepaskan: 2025-01-03 09:32:39
asal
738 orang telah melayarinya

How to Effectively Handle Model Binding with Lists in ASP.NET MVC 4?

Model Mengikat kepada Senarai dalam 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.

Konfigurasi ViewModel

public class MyViewModel
{
   public List<Person> Persons{get;set;}
}
Salin selepas log masuk

Lihat Pelaksanaan

@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)         
}
Salin selepas log masuk

Tindakan Kaedah

[HttpPost]public ViewResult(MyViewModel vm)
{
...
}
Salin selepas log masuk

Pertimbangan

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)           
    }
}
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan