Domanda

Ho un pulsante HTML configurato e funzionante con una serie di proprietà richieste che vorrei invece convertire in un collegamento basato su testo.Inoltre, per poter familiarizzare con gli helper html funzionanti e con intellesense, mi piacerebbe vedere come inserire queste proprietà in 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" />

grazie

È stato utile?

Soluzione

Non dovrebbe essere così difficile .... ma penso che vuoi dire Html.Link perché ActionLink significa che è necessario per generare link dalla tabella di route.

<%= 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 stringa Link (questo HtmlHelper HtmlHelper, string linkText, stringa href, htmlAttributes oggetto) {

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

    tagBuilder.MergeAttributes (htmlAttributes);

    tagBuilder.MergeAttributes ( "href", href);

    ritorno tagBuilder.ToString (TagRenderMode.Normal);

    }

e non dimenticate di <% @ Import Namespace = "xxxxxx" %> sulla vista al fine di utilizzare il metodo di estensione.

Altri suggerimenti

I pulsanti non possono fungere da collegamenti senza JavaScript.
In generale, questa è una cattiva pratica (i motori di ricerca non possono indicizzare correttamente la tua pagina, ecc.).

Ti consiglierei di utilizzare i tag di ancoraggio e di farli sembrare dei pulsanti.

Ma se ne hai davvero bisogno... Questo l'articolo fornisce una risposta.

MODIFICARE:

Scusa.Ho sparato la mia risposta un po' troppo in fretta.

Questo non è esattamente quello che stai chiedendo (HtmlHelper non è coinvolto) ma è così che risolverei questo problema:

in considerazione definirei ancoraggio (gli ancoraggi senza href superano la convalida W3):

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

nel file JavaScript esterno:

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

nel CSS:

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

Credo che sarebbe troppo complicato curiosare con Javascript in HtmlHelpers.

EDIT2:

Il testo di ancoraggio è definito all'interno dei tag.Lo confondo sempre.E sembra che targetSource() è sbagliato pure.Prova a riscriverlo:event.targetSource()=>event.target.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top