102 votes

ASP.NET MVC en passant un ID dans un ActionLink au contrôleur

Je ne vois pas comment récupérer un identifiant que j'envoie dans un html.ActionLink dans mon contrôleur, voici ce que j'essaie de faire.

 <li>
    <%= Html.ActionLink("Modify Villa", "Modify", "Villa", new { @id = "1" })%></li>


    public ActionResult Modify(string ID)
    {

        ViewData["Title"] =ID;
        return View();
    }
 

C'est ce qu'un tutoriel que j'ai suivi a recommandé, mais cela ne fonctionne pas, c'est aussi mettre? Longueur = 5 à la fin de l'URL!

Merci d'avance!

edit: voici la route que j'utilise, c'est par défaut

         routes.MapRoute(
            "Default",                                              // Route name
            "{controller}/{action}/{id}",                           // URL with parameters
            new { controller = "Home", action = "Index", id = "" }  // Parameter defaults
        );
 

il semble que quelqu'un ait voté contre les deux suggestions ci-dessous mais n'a pas posté sa solution!

207voto

AnthonyWJones Points 122520

Ne semble pas que vous utilisiez la surcharge correcte d'ActionLink. Essaye ça:-

 <%=Html.ActionLink("Modify Villa", "Modify", new {id = "1"})%>
 

Cela suppose que votre vue se trouve dans le dossier / Views / Villa. Sinon, je suppose que vous avez besoin de: -

 <%=Html.ActionLink("Modify Villa", "Modify", "Villa", new {id = "1"}, null)%>
 

29voto

Oracular Man Points 49

Dans MVC 4, vous pouvez relier une vue à un autre contrôleur en passant l’ID ou la clé primaire via

 @Html.ActionLink("Select", "Create", "StudentApplication", new { id=item.PersonId }, null) 
 

14voto

Davide Vosti Points 1903

Ne mettez pas le @ avant l'identifiant

 new { id = "1" }
 

Le cadre "traduit" en? Longueur quand il y a une discordance dans le paramètre / route

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X