提交链接到错误表单帖子

时间:2018-01-05 23:17:13

标签: forms razor asp.net-core-mvc asp.net-core-2.0

我在视图中有多个后期表单,而我的第二个表单一直在触及第一个表单。

我的表单如下:

<form asp-controller="Mentor" asp-action="DeleteAchievement"  asp-route-id="@item.Id" method="post">
    <button asp-route-id="@item.Id" type="submit" class="btn btn-primary">Delete</button>
 </form>

我的控制器方法:

[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> DeleteAchievement(string id)
{
  //delete
}

即使没有路由id,它仍然没有命中它。它恰好触及了视图的动作。

我检查了生成的html,并且形成的原因不明,不符合表单,但提交按钮链接到另一个表单帖子。

<button type="submit" class="btn btn-primary" formaction="/mentor/achievements/634c650b-0659-4fc3-aea6-3ed2d597acb2">Slet</button>

我试着做this,但没有运气。我也尝试在我的剃刀视图中输入我的按钮的形状,但也不是解决方案。有人遇到过这个问题吗?

1 个答案:

答案 0 :(得分:2)

  1. form action应采用非按钮
  2. 的形式
  3. 表单需要一个隐藏的输入字段,其中item.Id为值
  4. <form asp-controller="Mentor" asp-action="DeleteAchievement" method="post"> <input type="hidden" asp-for="item.Id" /> <button type="submit" class="btn btn-primary">Delete</button> </form>