我在视图中有多个后期表单,而我的第二个表单一直在触及第一个表单。
我的表单如下:
<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,但没有运气。我也尝试在我的剃刀视图中输入我的按钮的形状,但也不是解决方案。有人遇到过这个问题吗?
答案 0 :(得分:2)
form action
应采用非按钮item.Id
为值 <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>