Rumah > hujung hadapan web > tutorial js > Bagaimana untuk Lulus Data JSON POST ke Kaedah API Web sebagai Objek dalam ASP.NET MVC?

Bagaimana untuk Lulus Data JSON POST ke Kaedah API Web sebagai Objek dalam ASP.NET MVC?

Barbara Streisand
Lepaskan: 2024-11-08 05:37:02
asal
612 orang telah melayarinya

How to Pass JSON POST Data to a Web API Method as an Object in ASP.NET MVC?

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

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

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

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

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!

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