2015-05-04 7 views

risposta

43

È possibile utilizzare il prefisso dell'attributo asp-route- per aggiungere il prefisso ai nomi delle variabili del percorso.

Esempio: <a asp-action="Edit" asp-route-id="10" asp-route-foo="bar">Edit</a>

+1

non ho potuto ottenere questo lavoro, perché il mio "asp-route-foobar" non corrisponde con il mio percorso: "routes.MapRoute (" yearNoCombo ", modello:" {controller = Home}/{action = Index}/{foobar?}/{cosa EVER1}/{} whatever2 "); - i nomi dei percorsi devono corrispondere. HTH altri. –

+0

Oltre al commento sopra, devi assicurarti che i tuoi percorsi siano impostati correttamente per evitare che il bit del percorso appaia come un parametro nel codice HTML o usando MapRoute o le annotazioni dei percorsi sui tuoi metodi – Calanus

3

è possibile passare ID personalizzato usando il codice qui sotto:

<a asp-controller="User" asp-action="Edit" asp-route-id="@item.ID">Edit</a> 
12

vorrei suggerire una combinazione delle altre due risposte, ma con un po 'di chiarezza in più.

Si utilizzerà un prefisso di attributo asp-route-{name} dove {name} è il nome del parametro di percorso che si desidera utilizzare. In altre parole, se il numero 5 nel vostro percorso è passato al controller come un valore ID, si potrebbe avere:

<a asp-controller="User" asp-action="Edit" asp-route-id="@item.ID">Edit</a> 

o se il parametro si voleva passare al percorso item.UserName era allora

<a asp-controller="User" asp-action="Edit" asp-route-username="@item.UserName">Edit</a> 

E se tu avessi entrambi i parametri poi

<a asp-controller="User" asp-action="Edit" asp-route-id="@item.Id" asp-route-username="@item.UserName">Edit</a> 
+0

Questo ha sicuramente più senso per me rispetto agli altri . Puoi anche avere più asp-route- {nome parametro} nello stesso ? Questo ha aiutato il mio problema con esso Non vincolante correttamente cercando di inviare una chiave esterna CompanyId indietro mentre stava usando Id e posizionandolo invece nell'ID della chiave primaria Order. – Edward

+1

Sì, è possibile. Secondo http://www.davepaquette.com/archive/2015/06/01/mvc-6-anchor-tag-helper.aspx È possibile specificare i valori per tutti i parametri necessari utilizzando gli attributi con * asp-route - * prefisso. Non penso che tu possa avere due parametri con lo stesso nome - c'è una richiesta/problema di funzionalità a riguardo qui https://github.com/aspnet/Mvc/issues/4560 –

+0

Quindi, se ho letto bene, attualmente ci sono è un modo per passare gli elenchi solo nel metodo dell'azione helper e non negli helper dei tag di ancoraggio. – Edward