2010-02-11 7 views
6

J'ai aa vue qui a le code suivant:MVC Html.ActionLink ignore le paramètre du contrôleur

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

J'ai un ProjectsController mais quand je lance l'application et cliquez sur le Ajouter le lien de projet, il s'attend à aller à/Company/Create au lieu de/Projects/Create. Est-ce que je manque quelque chose?

Répondre

12

Vous correspondez au signature qui attend les valeurs de route dans le troisième paramètre et les attributs html dans le quatrième. Ajouter un autre paramètre (null est ok) et vous obtiendrez le signature qui a le texte du lien, l'action, le contrôleur, les valeurs de route, et les attributs html.

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

Merci, je venais juste de me le dire! –

+0

@Susan - puisque vous êtes nouveau ici, j'ai pensé que je mentionnerais que la façon dont fonctionne SO est de voter (en utilisant les boutons fléchés à côté de la question) les réponses qui sont utiles. Ensuite, sélectionnez la meilleure réponse à votre question et acceptez-la en cochant la case pour indiquer qu'elle a résolu votre problème. De cette façon, d'autres avec le même problème savent quelle est la meilleure solution. – tvanfosson

Questions connexes