有效负载未传递给处理程序
Payload is not passed to the handler
我目前正在开发一个小型 Web 应用程序示例。我想通过 Ajax 调用将 id 从 table 发送到适当的 post 处理程序。我找到了处理程序,但不知何故有效载荷在途中丢失了。开发人员工具(网络)在负载部分正确输出 ID。但是,只有 0 到达 post 处理程序。
此外,我还发现如何将整个对象传递给 Ajax 函数很有趣。
在此先感谢您的帮助。
查看
foreach (var student in Model.Students)
{
<tr>
<td>@student.StudentId</td>
<td>@student.Salutation</td>
<td>@student.FirstName</td>
<td>@student.LastName</td>
<td>@student.EmailAddress</td>
<td>@student.City</td>
<td>@student.CreatedOn.ToString("ddd., dd.MM.yyyy")</td>
<td>
<a class="btn btn-danger" onclick="DeleteStudentRecord(@student.StudentId)">Delete</a>
</td>
</tr>
}
Ajax 脚本
function DeleteStudentRecord (studentId) {
$.ajax({
type: "POST",
url: '@Url.Action("DeleteStudentRecord", "Students")',
data: {StudentId: studentId},
dataType: "json"
});
}
Post 处理程序 (StudentsController.cs)
[HttpPost]
public IActionResult DeleteStudentRecord(int id)
{
StudentViewModel viewModel = new();
_studentService.DeleteStudent(id);
viewModel.Students = _studentService.GetAllStudents();
ModelState.Clear();
return View("StudentsList", viewModel);
}
Ajax 脚本必须像 :
function DeleteStudentRecord (studentId) {
$.ajax({
type: "POST",
url: '@Url.Action("DeleteStudentRecord", "Students")',
data: {id: studentId},
dataType: "json"
});
}
因为在您的学生控制器 DeleteStudentRecord 操作中等待 id 而不是 StudentId。
或者您可以在 DeleteStudentRecord 操作中将 id 更改为 StudentId。
我目前正在开发一个小型 Web 应用程序示例。我想通过 Ajax 调用将 id 从 table 发送到适当的 post 处理程序。我找到了处理程序,但不知何故有效载荷在途中丢失了。开发人员工具(网络)在负载部分正确输出 ID。但是,只有 0 到达 post 处理程序。
此外,我还发现如何将整个对象传递给 Ajax 函数很有趣。
在此先感谢您的帮助。
查看
foreach (var student in Model.Students)
{
<tr>
<td>@student.StudentId</td>
<td>@student.Salutation</td>
<td>@student.FirstName</td>
<td>@student.LastName</td>
<td>@student.EmailAddress</td>
<td>@student.City</td>
<td>@student.CreatedOn.ToString("ddd., dd.MM.yyyy")</td>
<td>
<a class="btn btn-danger" onclick="DeleteStudentRecord(@student.StudentId)">Delete</a>
</td>
</tr>
}
Ajax 脚本
function DeleteStudentRecord (studentId) {
$.ajax({
type: "POST",
url: '@Url.Action("DeleteStudentRecord", "Students")',
data: {StudentId: studentId},
dataType: "json"
});
}
Post 处理程序 (StudentsController.cs)
[HttpPost]
public IActionResult DeleteStudentRecord(int id)
{
StudentViewModel viewModel = new();
_studentService.DeleteStudent(id);
viewModel.Students = _studentService.GetAllStudents();
ModelState.Clear();
return View("StudentsList", viewModel);
}
Ajax 脚本必须像 :
function DeleteStudentRecord (studentId) {
$.ajax({
type: "POST",
url: '@Url.Action("DeleteStudentRecord", "Students")',
data: {id: studentId},
dataType: "json"
});
}
因为在您的学生控制器 DeleteStudentRecord 操作中等待 id 而不是 StudentId。
或者您可以在 DeleteStudentRecord 操作中将 id 更改为 StudentId。