所以,我试图通过 ajax post 从客户端(js)到服务器(.net 控制器)获取 json 字符串。由于某种我无法理解的原因,它到达了控制器,但列表是空的(计数 = 0)。
btnAddMovie.addEventListener("click", () => {
console.log(datesDict);
var dataToSend = formatDataToSend();
console.log(dataToSend);
console.log(JSON.stringify(dataToSend));
$.ajax({
type: "POST",
url: "SubmitMovieAdd",
data: JSON.stringify(dataToSend),
contentType: "application/json",
success: function (response) {
console.log(response);
},
error: function (request, status, error) {
console.log(request.responseText);
}
});
});
function formatDataToSend() {
var jsonToSend = [];
for (const [key, value] of Object.entries(datesDict)) {
jsonToSend.push({
date: key,
hours: value
});
}
return jsonToSend;
}
在datesDict(字典)中有一些像这样的值: 日期字典 = 14/05/2024: ['15:00:00', '12:00:00']
在 dataToSend 中,它看起来像这样: dataToSend = 0: {日期: '14/05/2024', 小时: Array(2)}
最终 json.stringify => [{"date":"14/05/2024","hours":["15:00:00", "12:00:00"]}]
[HttpPost("MyAdminDashBoard/MovieAdd/SubmitMovieAdd")]
public IActionResult SubmitMovieAdd(List<MovieAddJsonAppModel> json)
{
return Content(json.Count().ToString());
}
public class MovieAddJsonAppModel
{
public string Date { get; set; }
public List<string> Hours { get; set; }
}
你能帮我解决这个问题吗?谢谢:)
确保 C# 模型中的属性名称与 JSON 对象中的键完全匹配。在您的情况下,属性名称应为 Date 和 Hours。