J'essaie de passer cet objet Person de ma vue au contrôleur sans formulaire, comment puis-je faire cela?Comment envoyer des données complexes (objet) de la vue au contrôleur?
Voilà ma tentative:
VIEW
<%=Html.ActionLink(
"Jump",
"Jump",
new { name="MyName",
person=ViewData["Person"]}, // lets assume ViewData["Person"] is not null
null) %>
CONTRÔLEUR
public ActionResult Jump(string name, Person person)
{
return View();
}
Lors du débogage de l'application dans la méthode de saut, le paramètre de nom indique "MonNom", mais Paramètre Person dans null. Pourquoi se comporte-t-il de cette façon?
Est-ce parce que cela ne fonctionne que pour les types primitifs tels que int, string, etc. et ne fonctionne pas pour les types complexes tels que cet objet Person?
Comment le contourner?
Rappelez-vous également que ce lien d'action ne fait que construire une balise . Vous n'avez pas besoin de cliquer sur le lien et d'inspecter les valeurs dans le paramètre de la méthode d'action du contrôleur pour voir si cela fonctionne correctement; vous pouvez juste passer votre souris sur le lien dans le navigateur et voir ce que le href pour le est. Si ce n'est pas dans le href, il ne va pas au serveur. – bzarah
Ok, merci! bon point là – Ari