En la última versión (RC1) de ASP.NET MVC, ¿cómo obtengo Html.ActionLink para representar como un botón o una imagen en lugar de un enlace?
asp.net-mvc
actionlink
Ryan Lundy
fuente
fuente
AjaxHelper
con unActionButton
), pensé en compartirlo a continuación.Respuestas:
Respuesta tardía, pero podría mantenerlo simple y aplicar una clase CSS al objeto htmlAttributes.
y luego crea una clase en tu hoja de estilo
fuente
Me gusta usar Url.Action () y Url.Content () así:
Estrictamente hablando, el contenido de Url. Solo es necesario para la ruta no es realmente parte de la respuesta a su pregunta.
Gracias a @BrianLegg por señalar que esto debería usar la nueva sintaxis de vista Razor. El ejemplo se ha actualizado en consecuencia.
fuente
Tomando prestado de la respuesta de Patrick, descubrí que tenía que hacer esto:
para evitar llamar al método de publicación del formulario.
fuente
Llámame simplista, pero solo hago:
Y solo se ocupa del resaltado del hipervínculo. A nuestros usuarios les encanta :)
fuente
text-decoration:none
deshacerse de ese estúpido subrayado. Esto es necesario para algunos navegadores (Firefox 11.0 seguro).Usando bootstrap, este es el enfoque más corto y limpio para crear un enlace a una acción del controlador que aparece como un botón dinámico:
O para usar ayudantes HTML:
fuente
Así de simple :
fuente
onclick
contenido conlocation.href
(entoncesonclick="location.href='@Url.Action(....)'"
) no pude hacerlo funcionar.Una respuesta tardía, pero así es como convierto mi ActionLink en un botón. Estamos usando Bootstrap en nuestro proyecto, ya que lo hace conveniente. No importa el @T ya que solo estamos usando un traductor.
Lo anterior da un enlace como este y se ve como la imagen a continuación:
En mi vista:
Espero que esto ayude a alguien
fuente
new { @class="btn btn-primary" })
+ onesi no quieres usar un enlace, usa el botón. también puedes agregar una imagen al botón:
type = "button" realiza su acción en lugar de enviar el formulario.
fuente
No puedes hacer esto con
Html.ActionLink
. Debe usarUrl.RouteUrl
y usar la URL para construir el elemento que desea.fuente
<button onclick="location.href='@Url.Action("NewCustomer", "Customers")'">Checkout >></button>
fuente
Una manera simple de hacer que su Html.ActionLink se convierta en un botón (siempre que tenga BootStrap conectado, que probablemente tenga) es así:
fuente
Incluso una respuesta posterior, pero me encontré con un problema similar y terminé escribiendo mi propia extensión de enlace de imagen HtmlHelper .
Puedes encontrar una implementación en mi blog en el enlace de arriba.
Solo se agrega en caso de que alguien esté buscando una implementación.
fuente
Para mostrar un icono con el enlace
fuente
Haz lo que dice Mehrdad, o usa el asistente de URL de un
HtmlHelper
método de extensión como el que Stephen Walther describe aquí y crea tu propio método de extensión que se puede usar para representar todos tus enlaces.Entonces será fácil representar todos los enlaces como botones / anclajes o lo que prefiera, y, lo más importante, puede cambiar de opinión más adelante cuando descubra que realmente prefiere otra forma de hacer sus enlaces.
fuente
puedes crear tu propio método de extensión,
mira mi implementación
luego úsalo en tu vista mira mi llamada
fuente
Para Material Design Lite y MVC:
fuente
fuente
Parece que hay muchas soluciones sobre cómo crear un enlace que se muestre como una imagen, pero ninguna que lo haga parecer un botón.
Solo hay una buena forma en que he encontrado para hacer esto. Es un poco hacky, pero funciona.
Lo que debe hacer es crear un botón y un enlace de acción separado. Haga que el enlace de acción sea invisible usando css. Cuando hace clic en el botón, puede activar el evento de clic del enlace de acción.
Puede ser una molestia hacer esto cada vez que agrega un enlace que debe parecerse a un botón, pero logra el resultado deseado.
fuente
use FORMACTION
fuente
Acabo de encontrar esta extensión para hacerlo, simple y eficaz.
fuente
La forma en que lo he hecho es tener el actionLink y la imagen por separado. Establezca la imagen actionlink como oculta y luego agregue una llamada de activación jQuery. Esto es más una solución alternativa.
Ejemplo de disparador:
fuente
Url.Action()
obtendrá la URL básica para la mayoría de las sobrecargasHtml.ActionLink
, pero creo que laURL-from-lambda
funcionalidad solo está disponibleHtml.ActionLink
hasta ahora. Esperemos que agreguen una sobrecarga similarUrl.Action
en algún momento.fuente
Así es como lo hice sin secuencias de comandos:
Igual, pero con el parámetro y el diálogo de confirmación:
fuente