Na versão mais recente (RC1) do ASP.NET MVC, como faço para que o Html.ActionLink seja renderizado como um botão ou uma imagem em vez de um link?
asp.net-mvc
actionlink
Ryan Lundy
fonte
fonte
AjaxHelper
com umActionButton
), pensei em compartilhá-lo abaixo.Respostas:
Resposta tardia, mas você pode simplificá-la e aplicar uma classe CSS ao objeto htmlAttributes.
e crie uma classe na sua folha de estilo
fonte
Eu gosto de usar Url.Action () e Url.Content () assim:
A rigor, o Url.Content é necessário apenas para o processamento não é realmente parte da resposta à sua pergunta.
Agradecemos a @BrianLegg por salientar que isso deve usar a nova sintaxe de exibição Razor. O exemplo foi atualizado de acordo.
fonte
Tomando emprestado a resposta de Patrick, descobri que precisava fazer isso:
para evitar chamar o método de postagem do formulário.
fonte
Me chame de simplista, mas eu faço:
E você apenas cuida do destaque do hiperlink. Nossos usuários adoram :)
fonte
text-decoration:none
para se livrar desse sublinhado estúpido. Isso é necessário para alguns navegadores (Firefox 11.0, com certeza).Usando o bootstrap, esta é a abordagem mais curta e limpa para criar um link para uma ação do controlador que aparece como um botão dinâmico:
Ou para usar os auxiliares de HTML:
fonte
Simplesmente :
fonte
onclick
conteúdo comlocation.href
(soonclick="location.href='@Url.Action(....)'"
), não consegui fazê-lo funcionar.Uma resposta tardia, mas é assim que eu faço do meu ActionLink um botão. Estamos usando o Bootstrap em nosso projeto, pois o torna conveniente. Não importa o @T, pois é apenas um tradutor que estamos usando.
O exemplo acima fornece um link como este e é semelhante à imagem abaixo:
Na minha opinião:
Espero que isso ajude alguém
fonte
new { @class="btn btn-primary" })
+ umse você não quiser usar um link, use o botão você também pode adicionar uma imagem ao botão:
type = "button" executa sua ação em vez de enviar o formulário.
fonte
Você não pode fazer isso com
Html.ActionLink
. Você deve usarUrl.RouteUrl
e usar a URL para construir o elemento que deseja.fonte
<button onclick="location.href='@Url.Action("NewCustomer", "Customers")'">Checkout >></button>
fonte
Uma maneira simples de transformar seu Html.ActionLink em um botão (desde que você tenha o BootStrap conectado - o que você provavelmente possui) é assim:
fonte
Resposta ainda mais tarde, mas acabei encontrando um problema semelhante e acabei escrevendo minha própria extensão Image link HtmlHelper .
Você pode encontrar uma implementação no meu blog no link acima.
Apenas adicionado caso alguém esteja procurando uma implementação.
fonte
Para exibir um ícone com o link
fonte
Faça o que Mehrdad diz - ou use o auxiliar de URL de um
HtmlHelper
método de extensão como Stephen Walther descreve aqui e crie seu próprio método de extensão que pode ser usado para renderizar todos os seus links.Então será fácil renderizar todos os links como botões / âncoras ou o que você preferir - e, o mais importante, você poderá mudar de idéia mais tarde, quando descobrir que realmente prefere outra maneira de criar seus links.
fonte
você pode criar seu próprio método de extensão,
veja minha implementação
em seguida, use-o em sua opinião, olhe para minha ligação
fonte
Para o Material Design Lite e MVC:
fonte
fonte
Parece haver muitas soluções sobre como criar um link que é exibido como uma imagem, mas nenhuma que o faça parecer um botão.
Só há uma boa maneira de encontrar isso. É um pouco hacky, mas funciona.
O que você precisa fazer é criar um botão e um link de ação separado. Torne o link de ação invisível usando css. Quando você clica no botão, ele pode disparar o evento click do link de ação.
Pode ser difícil fazer isso toda vez que você adiciona um link que precisa se parecer com um botão, mas consegue o resultado desejado.
fonte
use FORMACTION
fonte
Acabei de encontrar esta extensão para fazê-lo - simples e eficaz.
fonte
O jeito que eu fiz isso é ter o actionLink e a imagem separadamente. Defina a imagem do actionlink como oculta e, em seguida, adicione uma chamada de acionador jQuery. Isso é mais uma solução alternativa.
Exemplo de gatilho:
fonte
Url.Action()
você obterá o URL simples para a maioria das sobrecargasHtml.ActionLink
, mas acho que aURL-from-lambda
funcionalidade está disponível apenas atéHtml.ActionLink
o momento. Espero que eles adicionem uma sobrecarga semelhante aUrl.Action
em algum momento.fonte
Foi assim que eu fiz isso sem scripts:
O mesmo, mas com o parâmetro e a caixa de diálogo de confirmação:
fonte