2017-05-09 1 views
0

J'ai actuellement le lien suivant qui navigue d'une vue à l'autre:ASP.Net MVC - paramètre passer de vue à l'aide d'un href

"<td class='EmployeeTableTD'><a href='personDetails'>" + item.Name + " " + item.Surname + "</a></td>" + 

Le tableau est créé dynamiquement en Javascript et obtient les données (point) à partir d'un modèle ADO.

Je souhaite associer des paramètres pour les transmettre au contrôleur, puis à l'affichage de l'écran suivant.

J'ai essayé de prendre le type d'habitude

'personDetails?myParameter=' + item.Name 

méthode, mais cela a causé une erreur 404. J'ai aussi essayé d'insérer un @ HTML.ActionLink dans le code, mais c'est aussi problématique car l'intellisense ne reconnaît pas 'item' quand j'essaie de régler les paramètres.

Y a-t-il un moyen de transmettre des paramètres dynamiques de ce lien de vue au contrôleur/vue suivant?

Controller:

using System; 
... 
namespace techTest4.Controllers 
{ 
    public class HomeController : Controller 
    { 
     private TechTestEntities techContext = new TechTestEntities(); 

     public ActionResult personDetails() 
     { 
      return View(); 
     } 

     public ActionResult Index() 
     { 
      return View(); 
     } 

va donc correctement ma navigation pour « Accueil/personDetails » et la vue « personDetails.cshtml » (qui a peu encore, mais a besoin de sortir les paramètres passés). Il devrait sans doute naviguer vers 'Home/personDetailsController/{someIndexMethod}' où la mise en place de la page suivante serait gérée.

Config:

routes.MapRoute(
       name: "Details", 
       url: "PeopleDetails/{action}/{id}", 
       defaults: new 
       { 
        controller = "PeopleDetails", 
        action = "All", 
        id = UrlParameter.Optional 
       } 
      ); 
+0

Pouvez-vous nous montrer votre contrôleur? – DCruz22

+0

Quels sont les noms de contrôleur et de méthode que vous essayez d'atteindre? –

+1

Votre méthode 'personDetails' ne prend aucun paramètre. –

Répondre

2

Vous devez spécifier les paramètres que vous recevez dans votre action:

public ActionResult personDetails(String myParameter) 
{ 
    return View(); 
} 
+0

merci, cela signifie-t-il que je peux utiliser la méthode normale 'methodName? Parameters =' si cette correction est appliquée? – peanut

+0

Oui, il vous manquait le paramètre dans l'action pour que le navigateur ne sache pas exactement quelle vue afficher. – DCruz22