通过单击属性将值从视图传递到控制器

时间:2017-08-09 15:28:52

标签: view asp.net-core controller

我正在尝试将这些值传递回我的控制器以进行一些基本的分页,我不确定为什么它没有得到它们。

我是否错误地使用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)

1 个答案:

答案 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发布表单,但它有点超出了原始问题的范围。