我试图从基于userID
的jQuery数据表中删除一行,方法是从我的jQuery中调用AJAX,然后调用我的action方法DisableUser(int userID)
。当我被重定向到视图时,我得到一个错误。
下面是我的jQuery代码:
$('#usersList').on('click', 'button[id^="delete_"]', function () {
var userId = this.id.replace("delete_", "");
$.ajax({
type: 'POST',
url:"@Html.Action("DisableUser","Admin")",
data: { UserID: userId },
success: function (response) {
// Handle success response if needed
console.log('User deleted successfully');
},
error: function (error) {
// Handle error response if needed
console.error('Error deleting user', error);
}
});
});
字符串#userList
是jQuery DataTable
的ID。
下面是我在AdminController
中的操作方法:
[HttpPost]
public ActionResult DisableUser(int UserID)
{
if (UserID != 0 && UserID > 0)
{
int result = _helper.DisableUser(UserID);
switch (result)
{
case 1:
TempData["SaveMessage"] = "User disabled successfully";
break;
case -1:
TempData["SaveMessage"] = "Error disabling user";
break;
default:
TempData["SaveMessage"] = "Unknown error";
break;
};
}
var users = RetrieveUserList();
return View("AllUsersData", users);
}
型RetrieveUserList()
正在获取数据,并将以JSON格式发送。它绑定到我的User
模型类。AllUsersData
是jQuery DataTable
的JSON格式视图。
当我被重定向到视图时,我收到以下错误:
异常错误:'执行处理程序的子请求时出错'。
在此线路上:
url:"@Html.Action("DisableUser", "Admin")",
型
这之后是2个内部异常:
HttpException:执行子请求失败。有关详细信息,请检查InnerException
HttpException:在控制器“服务器”上未找到公共操作方法“服务器”
我在这里面临的主要问题是什么--有什么想法吗?
1条答案
按热度按时间iovurdzv1#
需要使用
@Url.Action()
而不是@Html.Action()
来生成正确的URL。当您在这里使用
@Html.Action()
时,MVC Razor引擎试图找到具有[HttpGet]
属性的DisableUser()
操作方法,但在没有找到之后,它抛出HttpException: A public action method 'DisableUser' was not found on controller
。