c# - 在上一个或下一个上将 ID 传递给控制器
问题描述
我有身份证清单
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>
根据我所在的页面,我想将正确的 ID 传递给 MyAction 操作/控制器。
我想遍历我的 pageIDList 并获取当前 ID,如果单击 Previous 链接,我想传递当前 ID 之前的 ID。如果单击 Next 链接,我想将 id 传递到当前 ID 旁边。
有没有办法可以在 href 链接中迭代我的 pageIDList?
我准备了以下代码,但不知道在哪里插入它并将正确的 ID 传递给我的操作。
@{int i = 0; }
@foreach (var z in pageIDList)
{
if (item.id.ToString() == z[i].ToString())
{
id=z[i+1].ToString();
}
}
我真的很感激任何想法/建议。
解决方案
如果字符串列表已经排序,那么您可以使用以下命令递增和递减索引:
pageIDList[pageIDList.IndexOf(item.id.ToString()) + 1]
pageIDList[pageIDList.IndexOf(item.id.ToString()) - 1]
因此在 href 中设置 id 如下所示:
<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>
推荐阅读
- c# - 无法识别命名空间函数的问题
- c++ - 如何避免在 std::modf 中使用临时变量?
- flutter - Dart 语言中的问号 (?) 和点 (.) 是什么?
- python - 姜戈。我的图像上不断出现 404,不知道我是否设置了正确的路径
- python - 使用 selenium 抓取 SPA 网页,获取错误数据
- r - 为什么子集选择语句中的粘贴函数会导致一元运算符错误的无效参数?
- java - 使用 java 进行事务文件复制
- pandas - 通过函数更新列的非空值
- c# - 如何从 C# 写入 cygwin 管道
- java - 将 `BufferedInputStream` 类型的 `System.in` 包装到 `BufferedReader` 中是否有帮助?