2010-02-11 16 views
6

Ho aa vista che ha il seguente codice:MVC Html.ActionLink ignora il parametro di controllo

<h2><%= Model.Company.CompanyName %></h2> 
<h3>Projects</h3> 
<ul> 
<% 
    foreach (Project p in Model.Company.Projects) 
    { 
     %> 
     <li><%= Html.ActionLink(p.ProjectName,"Details", "Projects", new {id=p.ProjectID,companyId=p.CompanyID}) %></li> 
     <% 
    } 
%> 
</ul> 
<%= Html.ActionLink("Add Project", "Create", "Projects", new {id = Model.CompanyID}) %> 
<br /> 
<h3>Users</h3> 

Ho un ProjectsController ma quando faccio funzionare l'applicazione e fare clic sul Aggiungi collegamento progetto che si aspetta di andare in/Azienda/Crea invece di/Progetti/Crea. Mi sto perdendo qualcosa?

risposta

12

Stai abbinando lo signature che si aspetta i valori del percorso nel terzo parametro e gli attributi html nel quarto. Aggiungi un altro parametro (null è ok) e riceverai il signature che contiene il testo del link, l'azione, il controller, i valori del percorso e gli attributi html.

<%= Html.ActionLink("Add Project", 
        "Create", 
        "Projects", 
        new {id = Model.CompanyID}, 
        null) %> 
+0

Grazie, l'ho appena scoperto! –

+0

@Susan - visto che sei nuovo qui, ho pensato di menzionare che il modo in cui SO funziona è di votare (usando i pulsanti freccia accanto alla domanda) le risposte che sono utili. Quindi, seleziona la risposta migliore alla tua domanda e accettala usando il segno di spunta per indicare che ha risolto il tuo problema. In questo modo altri con lo stesso problema sanno qual è la soluzione migliore. – tvanfosson

Problemi correlati