2017-06-16 2 views
1

In ASP.NET Core kann ich eine Aktion zu einem Link Element a, aber wenn ich es zu einer Schaltfläche ändern, funktioniert es nicht mehr.Machen Sie Tag Helper Arbeit "Button" wie "a"

Was ist der richtige Weg, um eine Aktion/einen Controller an eine button klicken klicken?

<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*@ 
+6

Wollen Sie gezielt ein 'button' oder haben Sie CSS als Ihren Link aussehen wie eine Schaltfläche machen? –

+5

würde ich 'GET's für ein Löschen vermeiden. Sie sollten 'POST' –

+0

Ich würde gerne wissen, ob wir einen' Knopf' mit einer Aktion/Controller verknüpfen könnten – Serge

Antwort

3

Es ist nicht, dass es nicht funktioniert, sind sie unterschiedliche Tag-Helfer mit unterschiedlicher Nutzung:
Wenn Sie über die schweben <a> Sie werden sehen, es implementiert AnchorTagHelper, während die <button> implementiert die FormActionTagHelper, weil es in <form> s verwendet werden soll.

Also, um das gleiche Verhalten zu bekommen, würden Sie dies tun:

<a asp-action="Index">aaaa</a> 

<form> 
    <button asp-action="Index">bbbbb</button> 
</form> 

Beachten Sie jedoch, dass der Knopf als formaction="/" gemacht wird, nicht als href="/", und das ist, warum Sie wickeln müssen es in einer Form. Die zweite könnte auch so geschrieben werden:

<form asp-action="Index"> 
    <button type="submit">bbbbb</button> 
</form> 
+0

Ich habe mehrere Zeilen von Produkten, und ich fügte einen "Löschen" -Knopf in jeder Zeile – Serge

Verwandte Themen