Передать ID контроллеру на предыдущий или следующий - PullRequest
0 голосов
/ 17 октября 2019

У меня есть список идентификаторов

IList<string> pageIDList = new List<string>();

В моем представлении MVC у меня есть две ссылки

<a href="@Url.Action("MyAction", new { id= item.id})"> Previous </a>
<a href="@Url.Action("MyAction", new { id= item.id})"> Next </a>

В зависимости от того, на какой странице я, я хочу передать правильный идентификаторДействие / контроллер MyAction.

Я хочу перебрать свой pageIDList и получить текущий идентификатор, а если щелкнуть «Предыдущая ссылка», я хочу передать идентификатор перед текущим. Если щелкнуть ссылку «Далее», я хочу передать идентификатор рядом с текущим идентификатором.

Можно ли выполнить итерацию по моему pageIDList внутри ссылки href?

У меня есть следующий кодподготовлено, но не знаю, где его вставить и передать правильный идентификатор моему действию.

@{int i = 0; }
@foreach (var z in pageIDList)
{
   if (item.id.ToString() == z[i].ToString())
   { 
     id=z[i+1].ToString();
   }
}

Я очень ценю любую идею / предложение.

1 Ответ

2 голосов
/ 17 октября 2019

Если список строк уже отсортирован, вы можете увеличивать и уменьшать индекс с помощью следующего:

pageIDList[pageIDList.IndexOf(item.id.ToString()) + 1]
pageIDList[pageIDList.IndexOf(item.id.ToString()) - 1]

Таким образом, установка id в href будет выглядеть следующим образом:

<a href="@Url.Action("MyAction", new { id = pageIDList[pageIDList.IndexOf(item.id.ToString()) - 1]})"> Previous </a>
<a href="@Url.Action("MyAction", new { id = pageIDList[pageIDList.IndexOf(item.id.ToString()) + 1]})"> Next </a>

РЕДАКТИРОВАТЬ: с проверкой элемента это будет выглядеть так:

<a href="@Url.Action("MyAction", new { id= pageIDList.IndexOf(item.id.ToString()) > 1 ?  pageIDList[pageIDList.IndexOf(item.id.ToString()) - 1] : null })"> Previous </a>
<a href="@Url.Action("MyAction", new { id= pageIDList.IndexOf(item.id.ToString()) < pageIDList.Count ?  pageIDList[pageIDList.IndexOf(item.id.ToString()) + 1] : null})"> Next </a>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...