Rumah >hujung hadapan web >tutorial js >Bagaimana untuk Lulus Set Model Kompleks melalui FormData kepada Pengawal MVC?

Bagaimana untuk Lulus Set Model Kompleks melalui FormData kepada Pengawal MVC?

Mary-Kate Olsen
Mary-Kate Olsenasal
2025-01-01 01:00:09332semak imbas

How to Pass a Complex Model Set via FormData to an MVC Controller?

Menukar Set Model kepada FormData dan Mendapatkannya dalam MVC

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.

JavaScript Pensirian

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.

Siarkan Data ke Pengawal

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.

Pengikat Pengawal

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.

Peningkatan Data Borang

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!

Kenyataan:
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