Question

J'ai une configuration de bouton HTML et je fonctionne avec une gamme définie de propriétés requises que j'aimerais plutôt convertir en un lien textuel.De plus, afin de pouvoir me familiariser avec les assistants HTML et Intelsense, j'aimerais voir comment intégrer ces propriétés dans un 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" />

Merci

Était-ce utile?

La solution

Il ne devrait pas être si difficile .... mais je pense que vous voulez dire Html.Link parce ActionLink signifie que vous devez générer lien de table de routage.

<%= Html.Link("Remove from Cart", "#", new {onclick = "#Step2_RemoveRegistrationForm input[name=id]').val('<%=row.ID %>'); $('#Step2_RemoveRegistrationForm').submit();"}) %>
  • 1 # param: linkText
  • # 2 param: href
  • param # 3: htmlAttributes

    Lien chaîne statique publique (ce HtmlHelper HtmlHelper, chaîne linkText, chaîne href, htmlAttributes objet) {

    TagBuilder TagBuilder = new TagBuilder ( "a") {InnerHtml = linkText; }

    tagBuilder.MergeAttributes (htmlAttributes);

    tagBuilder.MergeAttributes ( "href", href);

    tagBuilder.ToString de retour (TagRenderMode.Normal);

    }

et ne pas oublier de <% @ Import Namespace = "xxxxxx" %> sur la vue afin d'utiliser la méthode d'extension.

Autres conseils

Les boutons ne peuvent pas agir comme des liens sans javascript.
En général, c'est une mauvaise pratique (les moteurs de recherche ne peuvent pas indexer correctement votre page, etc.).

Je vous recommanderais d'utiliser des balises d'ancrage et de les faire ressembler à des boutons.

Mais si tu en as vraiment besoin - ce l'article apporte une réponse.

MODIFIER:

Désolé.J'ai tiré ma réponse un peu trop vite.

Ce n'est pas exactement ce que vous demandez (HtmlHelper n'est pas impliqué) mais c'est ainsi que je résoudrais ce problème :

en vue, je définirais l'ancre (les ancres sans hrefs passent la validation W3) :

<a id='removefromcart_<%=row.ID%>' title='Remove from cart' 
   class='remove-link' />

dans un fichier javascript externe :

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

en css :

 a {cursor:pointer;} /*anchors without href by default haven't pointer*/

Je pense que ce serait trop compliqué de fouiller avec javascript dans HtmlHelpers.

EDIT2 :

Le texte d'ancrage est défini à l'intérieur des balises.Je confond toujours ça.Et il semble que targetSource() est faux aussi.Essayez de le réécrire :event.targetSource()=>event.target.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top