У меня в данный момент есть эта работа. У меня есть кнопка отправки, в настоящее время используемая для назначения ролей. У меня есть вторая кнопка для удаления ролей. Чтобы удалить роли, я вызываю вызов $ .ajax и передаю свой контроллер с идентификатором своему действию. Это работает, НО мои TempData [msg] не сохраняются, поэтому, когда вызов завершается, сообщение не отображается, как при добавлении роли. Также роли не обновляются с помощью моего метода return redirectToAction () в конце моего метода действия.
Вот что у меня есть, есть ли способ заставить эти мелочи работать или какие еще идеи сделать это?
Спасибо,
//VIEW This is where I am getting my userId from this DropDownList @Html.AntiForgeryToken()
<div class="row">
<div class="col-md-4">
@Html.DropDownListFor(a => a.UserId,
new SelectList(Model.lstAdmins, "UserId", "Name"),
new { @class = "form-control", @id = "userAdmins" })
@* , @onChange = "SelectedValue(this)"*@
@Html.HiddenFor(a => a.UserId)
@Html.ValidationMessageFor(a => a.UserId)
</div>
<div class="col-md-4"></div>
<div class="col-md-4"></div>
</div><div class="row">
@for(var i = 0; i < Model.lstUsers.Count(); i++)
{
<div class="col-md-4">
<div>
@Html.CheckBoxFor(u => Model.lstUsers[i].SelectedUsers)
<label>
@Html.DisplayFor(u => Model.lstUsers[i].Name)
@Html.HiddenFor(u => Model.lstUsers[i].UserId)
@Html.HiddenFor(u => Model.lstUsers[i].Name)
</label>
</div>
</div>
}
</div>
<br />
<div class="row">
<div class="form-group">
<div class="col-md-offset-0 col-md-12">
<input type="submit" value="Assign Role" class="btn btn-success" />
@* @Url.Action("RemoveAdmin", "SuperAdmin") *@
<button type="button" onclick="clickMe()"
class="btn btn-danger">
Remove Role
</button>
@Html.ActionLink("Cancel", "Dashboard", "SuperAdmin",
null, new { @class = "btn btn-danger" })
</div> <script type="text/javascript">
//$(function () {
function clickMe() {
var userid = $("#userAdmins").val();
if (userid != "") {
$.ajax({
url: "RemoveAdmin/SuperAdmin",
data: { userid: userid },
type: "POST",
//success: function () {
// alert("Success");
//},
//error: function () {
// alert("Error");
//}
});
}
//window.location.href =
//'Url.Action("RemoveAdmin", "SuperAdmin")/' + userid;
//alert("val" + selectedValue);
}
// CONTROLLER ACTION
[HttpPost]
//[ValidateAntiForgeryToken]
public ActionResult RemoveAdmin(string userid)
{
ApplicationUser au = context.Users.Where(u => u.Id.Equals(userid,
StringComparison.CurrentCultureIgnoreCase)).FirstOrDefault();
var store = new UserStore<ApplicationUser>(context);
var manager = new UserManager<ApplicationUser>(store);
manager.RemoveFromRole(au.Id, "Admin");
manager.AddToRole(au.Id, "User");
TempData["Success"] = "Roles Assigned Successfully";
return RedirectToAction("AssignAdmin");
}