Ich weiß, dass das nicht stimmt, aber ich möchte zur Veranschaulichung so etwas tun:
<%= Html.Button("Action", "Controller") %>
Mein Ziel ist es, eine HTML-Schaltfläche zu erstellen, die die Aktionsmethode meines MVC-Controllers aufruft.
Sie müssen kein Formular verwenden, es sei denn, Sie möchten zur Aktion posten. Eine Eingabe-Schaltfläche (nicht Senden) erledigt den Trick.
<input type="button"
value="Go Somewhere Else"
onclick="location.href='<%: Url.Action("Action", "Controller") %>'" />
Rasiermessersyntax ist hier:
<input type="button" value="Create" onclick="location.href='@Url.Action("Create", "User")'" />
<button type="button" onclick="location.href='@Url.Action("MyAction", "MyController")'" />
type = "button" verhindert das Senden der Seite. Stattdessen führt es Ihre Aktion aus.
Sie können Url.Action verwenden, um anzugeben, dass die URL für eine Controller-Aktion generiert werden soll. Sie können also eine der folgenden Möglichkeiten verwenden:
<form method="post" action="<%: Url.Action("About", "Home") %>">
<input type="submit" value="Click me to go to /Home/About" />
</form>
oder:
<form action="#">
<input type="submit" onclick="parent.location='<%: Url.Action("About", "Home") %>';return false;" value="Click me to go to /Home/About" />
<input type="submit" onclick="parent.location='<%: Url.Action("Register", "Account") %>';return false;" value="Click me to go to /Account/Register" />
</form>
Versuche dies:
@Html.ActionLink("DisplayText", "Action", "Controller", route, attribute)
Das sollte für Sie funktionieren.
Aufbauend auf ein paar der obigen Antworten könnten Sie Folgendes tun:
<button onclick="location.href='@Url.Action("ActionName", "ControllerName")'" />
So können Sie Ihr Formular an einen bestimmten Controller und eine bestimmte Aktionsmethode in Razor senden.
<input type="submit" value="Upload" onclick="location.href='@Url.Action("ActionName", "ControllerName")'" />
Das HTML-Element <button>
kann nur in das Formular zurückschicken, in dem es enthalten ist.
Daher müssen Sie ein Formular erstellen, das POST für die Aktion bereitstellt, und dann einen <button>
oder <input type="submit" />
in das Formular einfügen.
Wenn Sie einen Fehler als "Konstante für nicht abgeschlossene Zeichenfolge" erhalten, verwenden Sie die folgende Rasiermesser-Syntax:
<input type="button" onclick="@("location.href='"+ Url.Action("Index","Test")+ "'")" />
Wenn Sie die Aktion im Controller implementieren, verwenden Sie
return View("Index");
oder
return RedirectToAction("Index");
die Seite Index.cshtml (oder die Seite, die die Aktion generiert) ist bereits definiert. Andernfalls wird wahrscheinlich der Fehler "Die Ansicht oder der Master wurde nicht gefunden ..." angezeigt.
Quelle: https://blogs.msdn.Microsoft.com/aspnetue/2010/09/17/best-practices-for-asp-net-mvc/
es ist besser, dieses Beispiel zu verwenden
<a href="@Url.Action("Register","Account", new {id=Item.id })"
class="btn btn-primary btn-lg">Register</a>
Also benutze ich Razor, aber das funktioniert mit beiden. Im Grunde packe ich einen Button in einen Link.
<a href="Controller/ActionMethod">
<input type="button" value="Click Me" />
</a>
Trotz onclick-Methode können Sie formaction auch folgendermaßen verwenden:
<button type="submit" id="button1" name="button1" formaction='@Url.Action("Action", "Controller")'>Save</button>
es ist besser, dieses Beispiel zu verwenden .
Aufruf einer Aktion und eines Controllers mit einer ActionLink
:
@Html.ActionLink("Submit", "Action", "Controller", route, new { @class = "btn btn-block"})
Wenn Sie sich auf der Startseite ("/ Home/Index") befinden und die Indexaktion des Admin-Controllers aufrufen möchten, funktioniert Folgendes für Sie.
<li><a href="/Admin/Index">Admin</a></li>
Verwenden Sie dieses Beispiel:
<button name="nameButton" id="idButton" title="your title" class="btn btn-secondary" onclick="location.href='@Url.Action( "Index","Controller" new { id = Item.id })';return false;">valueButton</button>
OK, Sie müssen die Aktion grundsätzlich an die Schaltfläche übergeben und sie aufrufen, wenn ein Klick erfolgt. Sie müssen sich nicht in einem von befinden. Sie können HTML onclick
auf button verwenden, um die Funktion auszulösen button wird geklickt ...
<button id="my-button" onclick="location.href='@Url.Action("YourActionName", "YourControllerName")'">Submit</button>