2009-05-04 4 views
3

Disons que je suis sur la page « Accueil/Index » et je veux aller à la page MyOtherController/Index/1Asp.Net MVC Appeler un autre contrôleur de vue

Comment puis-je faire cela?

J'essaie:

<%= Html.ActionLink("Test", "Index", "MyOtherController", new { id=item.Id }) %>

Est-ce que je dois aussi ajouter une route dans le fichier Global.aspx?

Répondre

8

Une option consiste à spécifier le nom du contrôleur dans la liste des routevalues:

<%= Html.ActionLink("Test", "Index" 
    , new { controller = "MyOtherController", id = item.Id }) %>

Une alternative est d'utiliser la surcharge de ActionLink avec htmlAttributes = null:

<%= Html.ActionLink("Test", "Index" 
    , "MyOtherController", new { id = item.Id }, null) %>

La route par défaut le modèle ASP.NET MVC prend en charge le routage dans ce cas.

1

Je ne crois pas que ActionLink ait une surcharge correspondant à cette signature particulière. Vous auriez besoin d'ajouter "null" après les valeurs de votre itinéraire pour en trouver un correspondant (pour htmlAttributes). La solution d'Ole serait plus propre, donc c'est vraiment une question de préférence. Il vous aidera également à la lisibilité, vous n'avez donc pas à deviner si chaque paramètre est un texte de lien, une action/un contrôleur, etc.

Questions connexes