我正在尝试将这些值传递回我的控制器以进行一些基本的分页,我不确定为什么它没有得到它们。
我是否错误地使用asp-route传递它们?
查看:
<ul class="pager">
<li class="previous"><a asp-action="Index" asp-route-prev="@Model.First().ID">Previous</a></li>
<li class="next"><a asp-action="Index" asp-route-next="@Model.Last().ID">Next</a></li>
</ul>
控制器:
[HttpPost, ActionName("Index")]
[ValidateAntiForgeryToken]
public async Task<IActionResult> IndexPost(string certification, string category, string resource, int prev, int next)
答案 0 :(得分:1)
<a asp-action="Index" asp-route-prev="@Model.First().ID">Previous</a>
上面的代码呈现 标记,如果您点击它,则会生成 HttpGet 请求操作方法。
如果您想要 HttpPost ,则需要使用 表单 标记和带有提交类型的按钮 或 输入 标记。
<ul class="pager">
<li class="previous">
<form asp-controller="Home" asp-action="Index"
asp-route-prev="@Model.First().ID" method="post" role="form">
<button type="submit">Previous</button>
</form>
</li>
</ul>
另一种方法是在点击时使用JavaScript或jQuery发布表单,但它有点超出了原始问题的范围。