it-swarm.com.de

HTML-Schaltfläche zum Aufrufen einer MVC-Controller- und Aktionsmethode

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.

166
Aaron Salazar

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") %>'" />
231
Cheddar

Rasiermessersyntax ist hier:

<input type="button" value="Create" onclick="location.href='@Url.Action("Create", "User")'" />
207
Babul Mirdha
<button type="button" onclick="location.href='@Url.Action("MyAction", "MyController")'" />

type = "button" verhindert das Senden der Seite. Stattdessen führt es Ihre Aktion aus.

58
Amir Chatrbahr

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>
14
Jon Galloway

Versuche dies:

@Html.ActionLink("DisplayText", "Action", "Controller", route, attribute)

Das sollte für Sie funktionieren.

13
Sunny Okoro Awa

Aufbauend auf ein paar der obigen Antworten könnten Sie Folgendes tun:

<button onclick="location.href='@Url.Action("ActionName", "ControllerName")'" />
8
usefulBee

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")'" />
7
Debendra Dash

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.

6
SLaks

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")+ "'")" />
5
Gaurav Joshi

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/

4
HappyCoder

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>

3
Alex Siela

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>
3
jade290

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>
3
Rahul Bhat

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"})
0
Rahul Raut

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>
0
Pabitra Dash

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>
0
Mohamed Wardan

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>
0
Alireza