Вы захотите отследить текущий индекс на стороне клиента (JavaScript) или в модели (Razor), а затем передать его в метод контроллера, увеличивая значение при каждом вызове. Со стороны сервера вы бы сделали что-то вроде:
var model = db.Queues.OrderBy(x => x.QueueNumber).Skip(index).Take(1);
Я бы рекомендовал отправить обратно ViewModel. Для реализации Razor у вас может быть ViewModel, который содержит отображаемые значения, идентификатор очереди и индекс. * Т.е. 1004 *
public class QueueViewModel
{
public int QueueId { get; set; }
public int QueueNumber { get; set; }
public string Name { get; set; }
// ..
public int NextIndex { get; set; }
}
public PartialViewResult BtnNext(int index = 0)
{
var model = db.Queues.OrderBy(x => x.QueueNumber)
.Select(x => new QueueViewModel
{
QueueId = x.QueueId,
QueueNumber = x.QueueNumber,
Name = x.Name,
NextIndex = index + 1
})
.Skip(index).Take(1);
return PartialView("_queuenumber", model);
}
Тогда в представлении будет что-то вроде ниже: (Извините, моя бритва довольно ржавая)
@Ajax.ActionLink(" ", "BtnNext", "QueueController",
new { index = Model.nextIndex },
new AjaxOptions
{
HttpMethod = "GET",
InsertionMode = InsertionMode.Replace,
UpdateTargetId = "current",
LoadingElementId = "loading",
OnBegin = "ClearResults",
}, new { @class = "Middle-next dim btn btn-large-dim", @id = "Link1"})
Это потребует некоторой проверки поведения, чтобы убедиться, что первый вызов прошел со значением индекса "0", но, надеюсь, даст вам некоторые идеи для продолжения.