Ich weiß, dass dies nicht richtig ist, aber zur Veranschaulichung möchte ich so etwas tun:
<%= Html.Button("Action", "Controller") %>
Mein Ziel ist es, eine HTML-Schaltfläche zu erstellen, die die Aktionsmethode meines MVC-Controllers aufruft.
html
asp.net-mvc
Aaron Salazar
quelle
quelle
Antworten:
Sie müssen überhaupt kein Formular verwenden, es sei denn, Sie möchten Beiträge zur Aktion veröffentlichen. Eine Eingabeschaltfläche (nicht senden) reicht aus.
quelle
public static string ActionButton(this HtmlHelper helper, string action, string controller, string text) { return String.Format("<input type=\"button\" value=\"{0}\" onclick=\"location.href='{1}' />",text,Url.Action(action,controller)); }
<input type="button" value="Go Somewhere Else" onclick="location.href='<%: Url.Action("Action", "Controller", new { parameter1 = value1 }) %>'" />
Die Rasiermessersyntax ist hier:
quelle
'input'
zu'button'
und das löste den Fehler.<button type="button" class="btn btn-primary" onclick="location.href='@Url.Action("action", "controller")'" >Go Somewhere Else</button>
dem Tricktype = "button" verhindert das Senden von Seiten. Stattdessen führt es Ihre Aktion aus.
quelle
Versuche dies:
Dies sollte für Sie funktionieren.
quelle
Mit Url.Action können Sie angeben, dass die URL für eine Controller-Aktion generiert werden soll. Sie können also eine der folgenden Methoden verwenden:
oder:
quelle
Auf diese Weise können Sie Ihr Formular an einen bestimmten Controller und eine bestimmte Aktionsmethode in Razor senden.
quelle
Aufbauend auf einigen der oben genannten Antworten können Sie Folgendes tun:
quelle
Das HTML-
<button>
Element kann nur auf das Formular zurückgesetzt werden, in dem es enthalten ist.Daher müssen Sie ein Formular erstellen, das POSTs für die Aktion erstellt, und dann ein
<button>
oder<input type="submit" />
in das Formular einfügen .quelle
Wenn Sie eine Fehlermeldung als "nicht abgeschlossene Zeichenfolgenkonstante" erhalten, verwenden Sie die folgende Rasierersyntax:
quelle
Verwenden Sie dieses Beispiel besser
quelle
Also benutze ich Razor, aber das wird auch funktionieren. Ich wickle im Grunde einen Knopf in einen Link.
quelle
Verwenden Sie, wenn Sie die Aktion in der Steuerung implementieren
oder
Dabei ist die Seite Index.cshtml (oder die Seite, die die Aktion generiert) bereits definiert. Andernfalls tritt wahrscheinlich der Fehler "Die Ansicht oder ihr Master wurde nicht gefunden ..." auf.
Quelle: https://blogs.msdn.microsoft.com/aspnetue/2010/09/17/best-practices-for-asp-net-mvc/
quelle
Trotz der onclick-Methode können Sie die Formatierung auch wie folgt verwenden:
quelle
Verwenden Sie dieses Beispiel:
quelle
Wenn Sie sich auf der Startseite ("/ Home / Index") befinden und die Indexaktion des Admin-Controllers aufrufen möchten, funktioniert Folgendes für Sie.
quelle
Verwenden Sie dieses Beispiel besser .
Rufen Sie Aktion und Controller mit einem
ActionLink
:quelle
OK, Sie brauchen im Grunde die Aktion auf die Schaltfläche passieren und es nennen , wenn Klick geschieht, ist es nicht von innen eine sein muss, können Sie HTML verwenden ,
onclick
auf Taste es ausgelöst wird, wenn die Schaltfläche geklickt bekommen ...quelle
Sie können immer mit htmlHelpers herumspielen und ein paar Sachen bauen
Und dann auf der Ansicht nennen Sie es so
quelle