Melalukan Data JSON POST ke Kaedah API Web sebagai Objek
Dalam ASP.NET MVC, menghantar objek pelanggan dalam format JSON melalui Permintaan POST boleh menghasilkan nilai nol dalam parameter pelanggan kaedah POST. Isu ini timbul disebabkan oleh Jenis Kandungan lalai yang digunakan oleh penyemak imbas, iaitu "application/x-www-form-urlencoded."
Penyelesaian
Untuk membetulkan masalah, pengepala Jenis Kandungan mesti ditetapkan kepada "aplikasi/json" dalam permintaan POST. Ini boleh dicapai dengan menggunakan Content-Type: "application/json" dalam pengepala permintaan, seperti yang ditunjukkan di bawah:
$(function () { var customer = {contact_name :"Scott",company_name:"HP"}; $.ajax({ type: "POST", data :JSON.stringify(customer), url: "api/Customer", contentType: "application/json" }); });
Dengan menentukan Content-Type sebagai "application/json," model pengikat akan mengecam dan mengikat data JSON ke objek kelas yang sepadan dengan tepat.
Melalui Objek Kompleks
Jika parameter kaedah API web ialah objek kompleks, seperti:
public class CustomerViewModel { public int Id {get; set;} public string Name {get; set;} public List<TagViewModel> Tags {get; set;} }
Untuk menghantar objek ini dari sisi klien, kod berikut boleh digunakan:
//Build an object which matches the structure of our view model class var model = { Name: "Shyju", Id: 123, Tags: [{ Id: 12, Code: "C" }, { Id: 33, Code: "Swift" }] }; $.ajax({ type: "POST", data: JSON.stringify(model), url: "../product/save", contentType: "application/json" }).done(function(res) { console.log('res', res); // Do something with the result :) });
Pastikan Atribut [Dari Badan]
Parameter kaedah API web mesti dihiasi dengan atribut [FromBody] untuk membolehkan pengikatan model daripada badan permintaan. Jika atribut ini ditinggalkan, sifat rata akan diikat dengan betul, tetapi sifat kompleks akan kekal kosong.
[HttpPost] public CustomerViewModel Save([FromBody] CustomerViewModel m) { return m; }
Atas ialah kandungan terperinci Bagaimana untuk Lulus Data JSON POST ke Kaedah API Web sebagai Objek dalam ASP.NET MVC?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!