Я могу заставить его работать, изменив данные формы с:
formData.append("Product[0].ProductName", "T-Shirt");
formData.append("Product[0].Options.Quantity", "1");
formData.append("Product[1].ProductName", "Shoe");
formData.append("Product[1].Options.Quantity", "2");
во множественном числе от "Product"
formData.append("Products[0].ProductName", "T-Shirt");
formData.append("Products[0].Options.Quantity", "1");
formData.append("Products[1].ProductName", "Shoe");
formData.append("Products[1].Options.Quantity", "2");
Поскольку параметр, который вы используете в действии публикации, это "products":
[HttpPost]
public IActionResult VerifyCart([FromForm] Product[] products)
{
}
Код на стороне клиента, который я использовал для проверки:
const formData = new FormData();
formData.append("Products[0].ProductName", "T-Shirt");
formData.append("Products[0].Options.Quantity", "1");
formData.append("Products[1].ProductName", "Shoe");
formData.append("Products[1].Options.Quantity", "2");
$.ajax({
type: "POST",
url: '/Home/VerifyCart',
data: formData,
processData: false,
contentType: false,
success: function (data) {
}
});
Обновление
Я изменил код на стороне клиента, чтобы исправить проблему с количеством:
const formData = new FormData();
formData.append("Products[0].ProductName", "T-Shirt");
formData.append("Products[0].Options[0].Quantity", "1");
formData.append("Products[1].ProductName", "Shoe");
formData.append("Products[1].Options[0].Quantity", "2");
$.ajax({
type: "POST",
url: '/Home/VerifyCart',
data: formData,
processData: false,
contentType: false,
success: function (data) {
}
});