Sé que esto no está bien, pero en aras de la ilustración, me gustaría hacer algo como esto:
<%= Html.Button("Action", "Controller") %>
Mi objetivo es crear un botón HTML que llame al método de acción de mi controlador MVC.
html
asp.net-mvc
Aaron Salazar
fuente
fuente
Respuestas:
No es necesario utilizar un formulario a menos que desee publicar en la acción. Un botón de entrada (no enviar) hará el truco.
fuente
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 }) %>'" />
La sintaxis de Razor está aquí:
fuente
'input'
a'button'
y eso resolvió el error.<button type="button" class="btn btn-primary" onclick="location.href='@Url.Action("action", "controller")'" >Go Somewhere Else</button>
usé el trucotype = "button" evita que la página se envíe. en su lugar realiza tu acción.
fuente
Prueba esto:
Esto debería funcionar para ti.
fuente
Puede usar Url.Action para especificar generar la url para una acción de controlador, por lo que puede usar cualquiera de los siguientes:
o:
fuente
Así es como puede enviar su formulario a un controlador específico y método de acción en Razor.
fuente
Sobre la base de algunas de las respuestas anteriores, puede hacer esto:
fuente
El HTML
<button>
elemento solo puede devolver al formulario que lo contiene.Por lo tanto, debe hacer un formulario que PUBLICE la acción y luego poner un
<button>
o<input type="submit" />
en el formulario.fuente
En caso de que obtenga un error como "constante de cadena no terminada", use la siguiente sintaxis de razor:
fuente
A pesar del Método onclick, también puede usar la formación de la siguiente manera:
fuente
es mejor usar este ejemplo
fuente
Entonces, estoy usando Razor pero esto funcionará usando cualquiera. Básicamente estoy envolviendo un botón en un enlace.
fuente
Cuando implemente la acción en el controlador, use
o
donde Index.cshtml (o la página que genera la acción) ya está definida. De lo contrario, es probable que encuentre el error "no se encontró la vista o su maestro ...".
Fuente: https://blogs.msdn.microsoft.com/aspnetue/2010/09/17/best-practices-for-asp-net-mvc/
fuente
Usa este ejemplo:
fuente
Si está en la página de inicio ("/ Inicio / Índice") y desea llamar a la acción Índice del controlador de administración, lo siguiente funcionaría para usted.
fuente
es mejor usar este ejemplo .
Llamar a la acción y al controlador utilizando un
ActionLink
:fuente
OK, básicamente necesita pasar la acción al botón y llamarlo cuando se hace clic, no necesita estar dentro de un, puede usar HTML
onclick
en el botón para activarlo cuando se hace clic en el botón ...fuente
Siempre puedes jugar con htmlHelpers y construir algunas cosas
Y luego en la vista llámalo así
fuente