Converter um botão HTML para ActionLink
-
12-09-2019 - |
Pergunta
Eu tenho uma configuração de botão html e funcionando com uma gama conjunto de propriedades necessárias que eu gostaria de converter para um link de texto em vez disso. Além disso, para que eu possa familiarizar-me com o trabalho html ajudantes e intellesense Eu gostaria de ver como encaixar essas propriedades em um ActionLink:
<input type="button" id="RemoveRegistration_Submit<%=row.ID %>"
value="Remove From Cart"
onclick="$('#Step2_RemoveRegistrationForm input[name=id]').val('<%=row.ID %>'); $('#Step2_RemoveRegistrationForm').submit();"
align="right" />
thx
Solução
Não deve ser tão difícil .... mas eu acho que você quer dizer Html.Link porque ActionLink significa que você precisa para gerar link da tabela de rotas.
<%= Html.Link("Remove from Cart", "#", new {onclick = "#Step2_RemoveRegistrationForm input[name=id]').val('<%=row.ID %>'); $('#Step2_RemoveRegistrationForm').submit();"}) %>
- param # 1: linkText
- param # 2: href
-
param # 3: htmlAttributes
public static string Link (este HtmlHelper HtmlHelper, linkText corda, href String, Object htmlAttributes) {
TagBuilder tagBuilder = new TagBuilder ( "a") {InnerHtml = linkText; }?
tagBuilder.MergeAttributes (htmlAttributes);
tagBuilder.MergeAttributes ( "href", href);
retorno tagBuilder.ToString (TagRenderMode.Normal);
}
e não se esqueça de <% @ Import Namespace = "xxxxxx" %> na visão, a fim de usar o método de extensão.
Outras dicas
Os botões não pode agir como links sem javascript.
Em geral - que é uma má prática (motores não pode indexar sua página corretamente etc. pesquisa).
Eu recomendaria que você use tags de âncora e torná-los olhar como um botões.
Mas se você realmente precisa - este artigo fornece uma resposta.
EDIT:
Sorry. Tiro minha resposta pouco rápido demais.
Isto não é exatamente o que você está pedindo (HtmlHelper não está envolvido), mas é assim que eu poderia resolver este problema:
tendo em vista i definiria âncora (âncoras sem hrefs não passar na validação W3):
<a id='removefromcart_<%=row.ID%>' title='Remove from cart'
class='remove-link' />
no arquivo javascript externo:
var onclick = function(event){
event.preventDefault();
var link = $(event.targetSource());
//tag ids should be injected through view asp/cx
$('#Step2_RemoveRegistrationForm input[name=id]')
.val(link.attr('id').split('_')[1])
};
$('a[id^=removefromcart]').click(onclick);
em css:
a {cursor:pointer;} /*anchors without href by default haven't pointer*/
Eu acredito que seria muito confuso para picar ao redor com javascript em HtmlHelpers.
EDIT2:
textAnchor é definido dentro de tags. Eu sempre confundem isso. E parece que targetSource () está errado também. Tentar reescrevê-lo:. Event.targetSource () => event.target