2010-04-21 11 views
25

Ho alcuni ActionLink che quando viene eseguito il rendering ricevono una chiave di lunghezza/valore aggiunto che sembra indicare il numero di caratteri del nome del controller. Come può essere rimosso?ASP.NET MVC - Aggiunta di querystring "length =" a ActionLinks?

+2

Duplicato, molte, molte volte: http://stackoverflow.com/search?q=[asp.net-mvc]+actionlink+length –

+0

grazie per il collegamento – ScottG

risposta

41

Probabilmente si sta utilizzando il sovraccarico errato di Html.ActionLink e si aggiungono ai parametri del percorso anziché agli attributi HTML. È necessario aggiungere un NULL come quarto parametro prima di specificare gli attributi HTML. Qualcosa di simile:

Html.ActionLink("Title", "Action", "Controller", null ,new { title = "Title"}) 

Inserisci il tuo codice se questo non funziona.

+0

Questo è tutto. Stavo usando i parametri di denominazione, ma dovevo aggiungere routeValues: null per eliminare questa stringa di query. – arche89

3

è necessario bastone bastone un parametro aggiuntivo vuoto oggetto nella prima delle htmlattributes, qualcosa di simile al largo della parte superiore della mia testa

html.actionlink("a","b","c",new {},new {@class = "d"}) 
2

Verificare se vostro usando del sovraccarico giusto per Html.ActionLink.

Sono ingannevoli perché prendono qualsiasi oggetto, anche anonimo, e lo trasformano in dizionari del valore di percorso o attributi html a seconda del sovraccarico che si utilizza. Dal momento che funzionerà e si compila bene se pasticciamo questi due è difficile dire se stai usando il sovraccarico corretto.

1

Se si passa '' routeValues,

Assicurarsi che 'htmlAttributes' è impostato su null.

Html.ActionLink("Title", "Action", "Controller", new {}, null) 

Altrimenti viene rilevato un sovraccarico errato di AcitonLink.

Problemi correlati