Melalui set model kompleks melalui formdata boleh menjadi satu cabaran, tetapi menggunakan gabungan siri jQuery dan pengawal MVC mengikat, adalah mungkin untuk mencapai ini dengan berkesan.
Untuk menukar set model kepada FormData, anda boleh menggunakan objek FormData jQuery bersama-sama dengan penyirian borang. Jika model terikat pada paparan dalam teg borang, sirikannya menggunakan:
var formdata = new FormData($('form').get(0));
Ini akan secara automatik termasuk sebarang sifat model yang terikat pada kawalan borang, termasuk input fail.
Serahkan formdata kepada pengawal menggunakan permintaan AJAX:
$.ajax({ url: '@Url.Action("YourActionName", "YourControllerName")', type: 'POST', data: formdata, processData: false, contentType: false, });
Dengan menetapkan processData dan contentType kepada false, jQuery akan membenarkan formdata dihantar seadanya.
Dalam pengawal anda, anda boleh menentukan kaedah taip kuat yang akan mengikat model set:
[HttpPost] public ActionResult YourActionName(YourModelType model) { }
Sistem pengikatan model MVC akan mengisi model secara automatik daripada formdata berdasarkan sifatnya nama.
Jika anda perlu memasukkan sifat bukan model tambahan dalam data borang, hanya gunakan:
formdata.append('someProperty', 'SomeValue');
Ini membolehkan anda melanjutkan data borang dengan nilai tersuai yang boleh diakses dalam pengawal.
Atas ialah kandungan terperinci Bagaimana untuk Lulus Set Model Kompleks melalui FormData kepada Pengawal MVC?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!