在ASP.NET Core中,我可以为链接项a
设置操作,但是如果我将其更改为按钮,它就不再起作用了。
将动作/控制器绑定到 button
点击的正确方法是什么?
<a asp-action="Delete" asp-route-id="@item.Id">remove</a> @*work*@
vs
<button asp-action="Delete" asp-route-id="@item.Id">remove</button> @*does not work*@
答案 0 :(得分:4)
并不是它不起作用,它们是不同用途的不同标签助手:
如果您将鼠标悬停在<a>
上,则会看到它实现AnchorTagHelper
,而<button>
会实现FormActionTagHelper
,因为它应该在<form>
中使用
因此,为了获得相同的行为,您可以这样做:
<a asp-action="Index">aaaa</a>
<form>
<button asp-action="Index">bbbbb</button>
</form>
请注意,该按钮呈现为formaction="/"
,而不是href="/"
,这就是您需要将其包装在表单中的原因。
第二个也可以这样写:
<form asp-action="Index">
<button type="submit">bbbbb</button>
</form>