对于一个项目,我必须能够将用户分配给一个组,这必须在使用ajax的ASP MVC中完成。
因此,我有一个显示用户的数据表,上方是一个DropdownList,其中包含可能的不同组(您将在下面找到屏幕截图)。 当用户单击DropdownList中的组时,数据表将显示该组中的所有用户。
这很好用。
我的问题在这里: 每个用户都有一个“ Deasign”按钮,可以拆卸该组的用户。 我的问题是获取链接到此DropdownList的组名称的组的ID(它显示组的名称),然后将其作为参数传递并在我的API的POST中发送。
我被困住了,不知道如何恢复该值,您有什么主意吗?我是ajax的新手。
下拉列表:
@*Dropdownlist Group*@
$('#GroupDropDown').change(function () {
var table = $('#UsersDatatables').DataTable();
table.destroy();
var id = $('#GroupDropDown').val();
// Permet que quand le user cliquer sur Display All, cela affiche la table complète
var SelectValue = $('#GroupDropDown option:selected').text();
if (SelectValue == " Display All ")
GetDatatable();
else {
$('#UsersDatatables').DataTable({
processing: true,
ajax: {
url: "/User/GetUsersinGroup/" + id,
type: "GET",
datatype: "json",
data: { idGroup: id },
error: function (error) {
toastr.error("No users found.");
}
},
columns: [
{ data: "USE_FirstName" },
{ data: "USE_LastName" },
{ data: "USE_Gender" },
{ data: "Country" },
{ data: "USE_PhoneNumber" },
{ data: "USE_EmailAddress" },
{
data: "USE_Id", "render": function (data) {
return '<a class="btn btn-primary btn-sm edit" id="' + data + '">Edit</a> <a class="btn btn-warning btn-sm deasign" id="' + data + '">Deassign</a>';
},
orderable: false,
width: "150px"
},
],
})
}
})
取消分配群组的功能
function PostDeAssignGroup() {
$('#UsersDatatables').on('click', '.deasign', function (e) {
idGroup = $("GroupDown").val().DropDownListOnChange.
$.ajax({
type: "POST",
datatype: "json",
url: "http://localhost/api/User/DeAssignGroup/" + UserName + idGroup + id,
success: function (data) {
if (data === "success") {
UsersDatatables.destroy();
toastr.success("The user has been successfully removed from the group.");
}
},
error: function (error) {
toastr.error("The user could not be deleted from the group.");
}
})
})
}
我的控制器方法:
[HttpPost]
[Route("DeAssignGroup/{UserName}/{idGroup}/{id}")]
public IHttpActionResult DeAssignGroup(string UserName , int idGroup, int id)
{
var Grpe = contexteEF.Group.Where(x => x.GRO_Id == idGroup).FirstOrDefault();
if (Grpe == null)
return StatusCode(HttpStatusCode.NotFound);
try
{
var Use = contexteEF.User.Where(x => x.USE_Id == id).FirstOrDefault();
if (Use == null)
return StatusCode(HttpStatusCode.NotFound);
User_Group ug = contexteEF.User_Group.SingleOrDefault(x => x.UGR_GRO_Id == idGroup && x.UGR_USE_Id == id);
contexteEF.User_Group.Remove(ug);
contexteEF.SaveChanges();
return StatusCode(HttpStatusCode.OK);
}
catch (Exception)
{
return StatusCode(HttpStatusCode.BadRequest);
}
}
预先感谢大家!