我继承了一个旧的 Web 应用程序。
简单的背景: 目前,razor .cshtml 页面上有一些按钮可以在单独的文件中调用 JS 函数。 它通过 SweetAlert 对控制器方法进行 ajax 调用就好了。
.cshtml文件:
.js文件:
function onDeleteButtonClick(e) {
swal({
title: "Are you sure?",
text: "You will update this user!",
type: "warning",
showCancelButton: true,
confirmButtonColor: "#DD6B55",
confirmButtonText: "Yes, updated it!",
closeOnConfirm: false
}, function () {
var id = $(e).attr('data-value')
$.ajax({
type: "POST",
url: '/admin/UpdateUser?userid=' + id
});
swal("Updated!", "User has been updated.", "success");
document.location.reload();
});
}
c#文件:
public string UpdateUser(int id = 0)
{
// db stuff
return "Success";
}
我想做什么: 我正在尝试创建新的 JS 函数,这些函数使用与现有方法相同的样式调用新的 Controller 方法。
我所做的改变:
结果: 在测试我创建的新方法时,每次都以 404 失败。
我还使用 Postman 进行了测试。 Postman 为 Controller 中的现有方法返回“200 OK”。我创建的所有方法都是 404。
我试过的东西:
我们将不胜感激!!
我读到控制器有时会出现问题并创建一个全新的控制器并进行测试。我有,同样的结果。
我在 VS 中完成了“清理和构建”。没有区别
我正在使用 RouteConfig.cs 中定义的路由。没有区别
我研究过是否有可能阻止控制器方法(也许最后一个人想控制访问??)。但似乎没有什么不寻常的。当我发现“MVC-AreaRegistrationTypeCache.xml”时我确实很兴奋,认为有一个文件可能包含特定允许访问方法的列表,但这没有帮助。
使用 Postman 测试。每次都是404。