У меня есть страница, которая представляет собой список пользователей. Функция индексатора контроллера - это действие, ответственное за показ страницы пользователей. Пользователь может выбрать этих пользователей и выбрать их удаление.Как сохранить этот сценарий в 1 раунде?
Выполнение действия delete с помощью запроса ajax, однако список пользователей устарел. Поэтому я перезагружаю страницу, потому что я хочу повторно использовать действие индекса, и все параметры строки запроса все еще существуют. Это означает, что я выполняю две поездки туда и обратно. Как мне избежать этого?
function DeleteUsers()
{
var selectedUserIds = ;
$.post("/Account/DeleteUsers",
{
userIds: selectedUserIds
},
function (data) {
if(data.status == "success"){
location.reload();
}
});
}
функция Index:
[AuthorizeActionFilter]
public ActionResult Index(UserModel model)
{
ViewData["PageTitle"] = ServiceSite.Resources.Resources.REGISTERED_USERS;
ViewBag.MaxUsersPerPage = PAGE_MAX_COUNT;
if(model == null)
{
model = new UserModel();
}
int totalCount = 0;
//Get users
model.Users = CADC.GetUsers(AccountController.GetRegionID(), model.CompanyID, out totalCount,
model.SortField, model.PageNumber * PAGE_MAX_COUNT, PAGE_MAX_COUNT, model.Ascending, User.Identity.Name);
model.TotalUserCount = totalCount;
int totalPages = totalCount/PAGE_MAX_COUNT;
model.TotalPages = (totalCount % PAGE_MAX_COUNT) == 0 ? totalPages : totalPages + 1;
return View(model);
}
и модель:
public class UserModel
{
public bool Ascending { get; set; }
public int PageNumber { get; set; }
public string SortField { get; set; }
public int TotalUserCount { get; set; }
public int TotalPages { get; set; }
public long CompanyID { get; set; }
public List<User> Users { get; set; }
public UserModel()
{
this.Ascending = true;
this.PageNumber = 0;
this.SortField = "FirstName";
this.CompanyID = 0;
this.TotalUserCount = 0;
this.TotalPages = 0;
}
}
Вам действительно нужно повторно выбрать список после операции удаления? Когда запрос AJAX сообщает об успехе, вы не можете просто удалить эти строки из HTML через JavaScript? В чем разница между этим и повторным набором всего списка? – David
Это обычная практика? На странице также есть итоговые значения на странице, которые я мог бы рассчитать, но разбиение на страницы было бы путаным. На странице «Показано от 1 до 50 из 250». Поэтому, если я удалю 10 устройств, я предполагаю, что могу обновить их до «Показывать от 1 до 40 из 240». – Dave
Другой вариант может состоять в том, чтобы сама операция удаления возвращала обновленный список, а затем просто привязывала элементы страницы к этому списку. – David