JSON档案:
{
"Students": [
{
"id": 1,
"name": "Ravi",
"department": "IT"
},
{
"id": 2,
"name": "Raj",
"department": "hr"
},
{
"id": 3,
"name": "avi",
"department": "it"
}
]}ASP.NET MVC模型类:
public class Student
{
public int Id { get; set; }
public string Name { get; set; }
public string Department { get; set; }
}
public class Root
{
public List<Student> Students { get; set; }
}ASP.NET MVC控制器用于接收来自jQuery POST请求的数据,并将该数据发送到jQuery:
public class StudentController : Controller
{
HttpClientHandler _clientHandler = new HttpClientHandler();
[HttpPost]
public async Task<List<Student>> AddUser(Student _Students)
{
OStudents = new List<Student>();
using (var httpclient = new HttpClient(_clientHandler))
{
StringContent content = new StringContent(JsonConvert.SerializeObject(_Students), Encoding.UTF8, "application/json");
using (var response = await httpclient.PostAsync("https://localhost:7018/api/Students/AddUser", content))
{
string res = await response.Content.ReadAsStringAsync();
OStudents = JsonConvert.DeserializeObject<List<Student>>(res);
}
}
return OStudents;
}
}jQuery代码:用于向AddUser函数发送数据:
function AddStudent() {
oStudent = {
id: $("#st-Id").val(),
name: $("#st-Name").val(),
department: $("#st-Department").val()
};
$.post("/Student/AddUser", oStudent);
$.ajax({
url: "/Student/AddUser",
type: 'POST',
data: oStudent,
contentType: 'application/json',
dataType: 'json',
success: function (msg) {
alert(msg);
}
});Web文件:
课程:
public class Student
{
public int Id { get; set; }
public string Name { get; set; }
public string Department { get; set; }
}
public class Students
{
public List<Student> students { get; set; }
} ApiController,用于将从ASP.NET MVC应用程序接收的数据添加到JSON文件中
[HttpPost("AddUser")]
public IActionResult AddUser(Students _Student)
{
var filePath = @"C:/Users/tanmay_pawar/source/repos/CRUDAPI/CRUDAPI/output.json";
var json = System.IO.File.ReadAllText(filePath);
Students students = JsonConvert.DeserializeObject<Students>(json);
students.students.AddRange(_Student.students);
json = JsonConvert.SerializeObject(students);
System.IO.File.WriteAllText(filePath, json);
return Ok();
}我在Web中的POST方法正在接收空值。
发布于 2022-09-06 17:58:33
oStudent不是JSON对象。它是一个普通的JavaScript对象。如果要以JSON的形式发送数据,则必须首先对其进行编码:
数据:{_Student: JSON.stringify(oStudent)}
可以在服务器端使用字符串类型参数接收此数据,然后反序列化对象。
[HttpPost("AddUser")]
public IActionResult AddUser(string _Student)
{
List<Student> students = JsonConvert.DeserializeObject<List<Student>>(_Student);
return Ok();
}https://stackoverflow.com/questions/73623733
复制相似问题