gpt4 book ai didi

javascript - 当使用 contentType : 'application/json; charset=utf-8' , 时,我的数据不会传递给 api Controller

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:15:05 26 4
gpt4 key购买 nike

我正在使用 web api 中的 PUT 更新记录,当我使用 contentType: 'application/json; charset=utf-8',那么我的数据没有传递给 api Controller ,但是当我评论这行数据时,它被传输了。谁能解释一下?下面是我从 mvc View 调用

$(function () {
$("#btnSubmit").click(function () {
var id = $("#hdnProductID").val();
var ProductName = $("#txtProductName").val();
var QuantityPerUnit = $("#txtQuantityPerUnit").val();
var ReorderLevel = $("#txtReorderLevel").val();
var UnitPrice = $("#txtUnitPrice").val();
var UnitsInStock = $("#txtUnitsInStock").val();
var UnitsOnOrder = $("#txtUnitsOnOrder").val();

$.ajax({
url: "http://localhost:2821/api/Products"+ "/" + id,
type: 'PUT',
contentType: 'application/json; charset=utf-8',
data:{ProductName:ProductName,QuantityPerUnit:QuantityPerUnit,ReorderLevel:ReorderLevel,UnitPrice:UnitPrice,UnitsInStock:UnitsInStock,UnitsOnOrder:UnitsOnOrder},
success: function (data) {
alert("success");
},
error: function (msg) {
alert(msg);
}

});
});
});

下面是我的 Controller 方法

public IHttpActionResult PutProduct(int id, Product product)
{}

最佳答案

如果请求中未指定 contentType,则采用默认的 contentType,即“application/x-www-form-urlencoded; charset=UTF-8”,无需对发布数据进行字符串化,但如果 contentType 为“application/json; charset=utf-8", 需要明确地 stringfy post 数据。所以应该是:

    $.ajax({
url: "http://localhost:2821/api/Products"+ "/" + id,
type: 'PUT',
contentType: 'application/json; charset=utf-8',
data:JSON.stringify({ProductName:ProductName,QuantityPerUnit:QuantityPerUnit,ReorderLevel:ReorderLevel,UnitPrice:UnitPrice,UnitsInStock:UnitsInStock,UnitsOnOrder:UnitsOnOrder}),
success: function (data) {
alert("success");
},
error: function (msg) {
alert(msg);
}

});

关于javascript - 当使用 contentType : 'application/json; charset=utf-8' , 时,我的数据不会传递给 api Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33537581/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com