2010-02-11 14 views
6

tengo aa vista que tiene el siguiente código:MVC Html.ActionLink ignora el parámetro Controlador

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

Tengo un ProjectsController pero cuando funciono con la aplicación y haga clic en el Agregar Project Link espera ir a/Company/Create en lugar de/Projects/Create. ¿Me estoy perdiendo de algo?

Respuesta

12

Está haciendo coincidir el signature que espera los valores de ruta en el tercer parámetro y los atributos html en el cuarto. Agregue otro parámetro (null está bien) y obtendrá el signature que tiene el texto del enlace, acción, controlador, valores de ruta y atributos html.

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

Gracias ¡Acabo de descubrir eso! –

+0

@Susan: como eres nuevo aquí, pensé que mencionaría que la manera en que funciona SO es que votas (usando los botones de flecha al lado de la pregunta) las respuestas que son útiles. Luego, seleccione la mejor respuesta a su pregunta y acéptela usando la marca de verificación para indicar que resolvió su problema. De esta forma, otros con el mismo problema saben cuál es la mejor solución. – tvanfosson

Cuestiones relacionadas