vista varias una pasar net mvc metodos llamar llamando desde datos crear controlador asp acciones accion html asp.net-mvc

varias - Botón HTML llamando a un controlador MVC y método de acción



pasar datos de una vista a un controlador c# (16)

A pesar del método onclick, también puedes usar formaction de la siguiente manera:

<button type="submit" id="button1" name="button1" formaction=''@Url.Action("Action", "Controller")''>Save</button>

Sé que esto no está bien, pero por el bien de la ilustración, me gustaría hacer algo como esto:

<%= Html.Button("Action", "Controller") %>

Mi objetivo es crear un botón HTML que invoque el método de acción de mi controlador MVC.


Así es como puede enviar su formulario a un controlador y método de acción específico en Razor.

<input type="submit" value="Upload" onclick="location.href=''@Url.Action("ActionName", "ControllerName")''" />


Basándose en algunas de las respuestas anteriores, puede hacer esto:

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



El elemento HTML <button> solo puede realizar una devolución de datos al formulario que lo contiene.

Por lo tanto, debe crear un formulario que indique POSTS para la acción, luego coloque un <button> o <input type="submit" /> en el formulario.


En caso de que esté obteniendo un error como "constante de cadena sin terminar", use la siguiente sintaxis de afeitar:

<input type="button" onclick="@("location.href=''"+ Url.Action("Index","Test")+ "''")" />


Entonces, estoy usando Razor, pero esto funcionará con cualquiera de los dos. Básicamente estoy envolviendo un botón en un enlace.

<a href="Controller/ActionMethod"> <input type="button" value="Click Me" /> </a>


La sintaxis Razor está aquí:

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


No es necesario utilizar un formulario en absoluto a menos que desee publicar en la acción. Un botón de entrada (no enviar) hará el truco.

<input type="button" value="Go Somewhere Else" onclick="location.href=''<%: Url.Action("Action", "Controller") %>''" />


Prueba esto:

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

Esto debería funcionar para ti.


Puede usar Url.Action para especificar generar la url en una acción de controlador, por lo que podría usar cualquiera de los siguientes:

<form method="post" action="<%: Url.Action("About", "Home") %>"> <input type="submit" value="Click me to go to /Home/About" /> </form>

o:

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


Si se encuentra en la página de inicio ("/ Inicio / Índice") y desea llamar a la acción de índice del controlador de administración, lo siguiente le funcionaría.

<li><a href="/Admin/Index">Admin</a></li>


es mejor usar este ejemplo

<a href="@Url.Action("Register","Account", new {id=Item.id })" class="btn btn-primary btn-lg">Register</a>


OK, básicamente necesitas pasar la acción al botón y llamarlo cuando ocurra el clic, no necesita estar dentro de a, puedes usar el botón HTML onclick on para activarlo cuando se haga clic en el botón ...

<button id="my-button" onclick="location.href=''@Url.Action("YourActionName", "YourControllerName")''">Submit</button>


es mejor usar este ejemplo .

Acción de llamada y controlador usando ActionLink :

@Html.ActionLink("Submit", "Action", "Controller", route, new { @class = "btn btn-block"})


<button type="button" onclick="location.href=''@Url.Action("MyAction", "MyController")''" />

type = "button" evita que la página se envíe. en su lugar, realiza su acción.