从 AJAX 返回 404 到 ASP.NET MVC 控制器的路由

问题描述 投票:0回答:1

这应该很简单,但我没有看到它。

从 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
ajax asp.net-mvc asp.net-core routes
1个回答
0
投票

如果我猜(并且不知道控制器是如何映射的,那只是一个猜测)我会说你需要调用

url: '/Employee/Employee'
。最简单的确认方法是使用 Swagger 运行您的 C# 代码——它会准确地告诉您该方法的正确路径是什么。

您的代码还有其他问题......首先,您正在从 AJAX 调用 MVC 控制器/方法 - 您将如何处理您将返回的 HTML?

© www.soinside.com 2019 - 2024. All rights reserved.