2010-10-01 6 views
0

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?

Répondre

2

Vous avez raison en ce qui concerne l'analyse des types complexes.

Comme cela sera transformé en <a>, il n'y a pas de moyen facile de sérialiser l'objet Personne pour qu'il corresponde à l'attribut href. Essayez de transmettre une sorte de référence primitive unique à la Personne, par exemple int ou GUID.

+0

thx pour votre contribution, vraiment l'apprécier! – Ari

Questions connexes