Asp.net mvc 2 我想直接从包含复选框的网格中更新数据库
我是MVC的新手,我想知道如何做到以下几点:; 使用foreach循环和用户控件,我很高兴地显示了数据库中的用户列表。 此页面是管理员页面,显示每个用户的相关权限。我想对此进行更改,以便在每个角色的每个标题下都有一个复选框,用于确定该角色是否分配给该人员。 当管理员单击复选框时,该用户的角色将相应地更改。理想情况下,更新应该直接在数据库上进行Asp.net mvc 2 我想直接从包含复选框的网格中更新数据库,asp.net-mvc-2,Asp.net Mvc 2,我是MVC的新手,我想知道如何做到以下几点:; 使用foreach循环和用户控件,我很高兴地显示了数据库中的用户列表。 此页面是管理员页面,显示每个用户的相关权限。我想对此进行更改,以便在每个角色的每个标题下都有一个复选框,用于确定该角色是否分配给该人员。 当管理员单击复选框时,该用户的角色将相应地更改。理想情况下,更新应该直接在数据库上进行 在MVC2中实现这一点的最佳方法是什么 > P>如果您的意图是改变值并由复选框的触发器触发,请考虑这些建议。 使用jQuery为每个复选框附加一个事件。让
在MVC2中实现这一点的最佳方法是什么 > P>如果您的意图是改变值并由复选框的触发器触发,请考虑这些建议。 使用jQuery为每个复选框附加一个事件。让它对控制器中的URL进行AJAX调用。无论何时切换,该事件都将触发,并将运行以下代码:
$.ajax({
//this could also be built with '<%= Url.Action("UpdateUserRole","User") %>/
url: "/User/UpdateUserRole",
type: "POST",
data: {
"userID" : "", //somehow place the user's ID here - cookie, session, etc.
"roleID" : $('#theCheckbox').val(),
},
success: function(data) { alert(data); }
});
在中,您可以调用数据库来删除/向用户添加角色,具体取决于该角色当前是否存在。这取决于您是否希望布尔值指示启用/禁用,但这会使视图复杂化。我的建议是将该操作简单地“翻转”数据库中的状态。如果存在用户/角色配对,请将其删除。如果没有,就创建它
确保该控制器方法的安全性。您可能不希望任何人检测该方案是如何工作的。可能在表单中包含
Html.AntiForgeryToken
,并在控制器方法中要求它。我通过使用Html.EditorFor帮助程序取得了一些进展。这会自动将布尔值转换为我想要的复选框。但是,单击复选框不会立即更新数据库。我需要连接一个事件,也许是客户端?我已经加入了一个点击事件和一个AJAX帖子。我只需要更新的用户ID。但是我认为这里的代码有一个错误;函数TestClickFunc(userId){//alert(userId);$.ajax({url://Users/UpdateEmailDistributionListFlag],键入:“POST”,数据:{“userId”:userId},成功:函数(data){alert(data);}});}这无法在UsersController中调用以下方法;public void UpdateEmailDistributionListFlag(int userId){//db update}@arame3333:请参阅更新以使用Url.Action将Url构建到控制器
public string UpdateUserRole(int userID, int roleID){
//go update the DB with the 2 params as needed.
}