让标签助手工作"按钮"喜欢" a"

时间:2017-06-16 14:52:56

标签: c# asp.net-core asp.net-core-mvc

在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*@

1 个答案:

答案 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>