2010-02-11 22 views
6

Ich habe aa Ansicht, die den folgenden Code hat:MVC Html.ActionLink ignoriert der Reglerparameter

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

Ich habe einen ProjectsController aber wenn ich ausführen, um die Anwendung und klicken Sie auf Add Project Link erwartet, dass er/Company/Create statt/Projects/Create geht. Fehle ich etwas?

Antwort

12

Sie stimmen mit der signature überein, die die Routenwerte im dritten Parameter und die HTML-Attribute im vierten erwartet. Fügen Sie einen weiteren Parameter hinzu (null ist ok) und Sie erhalten die signature, die den Link-Text, Aktion, Controller, Route-Werte und HTML-Attribute enthält.

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

Danke Ich hatte gerade dieses eine out! –

+0

@Susan - da du neu hier bist, dachte ich mir, dass die Art und Weise, wie SO funktioniert, ist, dass du mit den Pfeiltasten neben der Frage die Antworten wählst, die hilfreich sind. Wählen Sie dann die beste Antwort auf Ihre Frage und akzeptieren Sie sie mit dem Häkchen, um anzuzeigen, dass das Problem gelöst wurde. Auf diese Weise wissen andere mit dem gleichen Problem, was die beste Lösung ist. – tvanfosson

Verwandte Themen