2010-02-11 1 views
6

У меня есть мнение, что аа имеет следующий код:MVC Html.ActionLink игнорирует параметр контроллер

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

У меня есть ProjectsController, но когда я запустить приложение и нажать на кнопку Добавьте ссылку Project, которую он ожидает, чтобы перейти в/Company/Create вместо/Projects/Create. Я что-то упускаю?

ответ

12

Вы соответствуете signature, который ожидает значения маршрута в третьем параметре и атрибутах html в четвертом. Добавьте еще один параметр (нуль в порядке), и вы получите signature, который имеет текст ссылки, действие, контроллер, значения маршрута и атрибуты html.

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

Спасибо, что я только что понял, что один! – 2010-02-11 02:11:23

+0

@Susan - так как вы новичок здесь, я думал, что упомянул, что способ SO работает, вы голосуете (используя кнопки со стрелками рядом с вопросом), которые полезны. Затем выберите наилучший ответ на свой вопрос и примите его, используя галочку, чтобы показать, что она решила вашу проблему. Таким образом, другие с той же проблемой знают, какое лучшее решение. – tvanfosson