这应该很简单,但我没有看到它。
从 AJAX 调用将对象传递给控制器。对象是正确的。它没有找到路由器:
JavaScript 中的 Ajax:
$('#employee_table tbody').on('click', '.editLink', function () {
var data = employee_table.row($(this).parents('tr')).data();
$.ajax({
type: 'POST',
data: data,
url: '/Employee',
contentType: 'application/json',
dataType: 'json'
});
});
控制器:
public class EmployeeController : Controller
{
private readonly IEmployeeService _iEmployeeService;
private readonly ICommentService _iCommentService;
public EmployeeController(IEmployeeService _iemployeeService, ICommentService _icommentService)
{
this._iEmployeeService = _iemployeeService;
_iCommentService = _icommentService;
}
public IActionResult Employee(object obj)
{
EmployeeDTO emp = (EmployeeDTO)obj;
EmployeeDetailViewModel employeeDetailViewModel =
new(emp);
return View(employeeDetailViewModel);
}
}
控制台错误:
Failed to load resource: the server responded with a status of 404 () Employee:1
如果我猜(并且不知道控制器是如何映射的,那只是一个猜测)我会说你需要调用
url: '/Employee/Employee'
。最简单的确认方法是使用 Swagger 运行您的 C# 代码——它会准确地告诉您该方法的正确路径是什么。
您的代码还有其他问题......首先,您正在从 AJAX 调用 MVC 控制器/方法 - 您将如何处理您将返回的 HTML?