2009-08-02 15 views
0

Possible en double:
How to assign Profile values?Comment obtenez-vous le profil d'adhésion d'un utilisateur dans une vue ASP.NET MVC?

J'utilise ASP.NET MVC et les fournisseurs d'adhésion. Comment obtenir le profil d'un utilisateur dans une vue? une méthode particulière pour l'obtenir?

Le projet de modèle de l'accès de la boîte le nom d'utilisateur ainsi:

<%= Html.Encode(Page.User.Identity.Name) %> 

Je voudrais avoir la même manière d'accéder aux données de profil.

+0

mis à jour ma réponse ... –

Répondre

1

La façon d'accéder au profil de l'utilisateur sur MVC est par la variable profil dans la vue, comme ceci:

<%= Profile %> 
+1

Ne fonctionne que pour les sites Web, pas pour les applications Web. –

+0

Pour plus de détails sur le commentaire de @Robert S., voir http://stackoverflow.com/questions/426609/how-to-assign-profile-values – jamiebarrow

2

Dans MVC, vous ne devez pas accéder directement au profil dans la vue. Vous devez remplir un objet modèle avec values of the user profile in the controller et utiliser la vue pour afficher ces valeurs.

+0

Cela voudrait dire que je devrais faire un ViewModel pour absolument chaque vue que j'ai et ajouter les données d'adhésion à elle. Je comprends comment c'est MVC pur mais je trouve ça moche et encombrant. En outre, le modèle intégré montre comment accéder à Page.User.Identity.Name pour obtenir le nom d'utilisateur, le modèle est-il faux? – Pablo

+0

Créez un ViewModel de base avec les données d'appartenance et utilisez-le. Si vous avez besoin de données supplémentaires pour une vue spécifique, héritez la base et ajoutez les détails. – svinto

+0

svinto: la plupart de mes vues sont bien avec juste le modèle, directement à partir de l'infrastructure de l'entité. Avoir un ViewModel de base ou non signifierait avoir beaucoup de classes supplémentaires, pour chaque vue plus ou moins. Est-ce la manière élégante? – Pablo

2

L'appartenance est gérée côté serveur; Si vous souhaitez que ces informations soient disponibles pour la vue, utilisez votre session ou le dictionnaire ViewData. Avant de rendre la page, placez les données ou l'objet appropriés dans le dictionnaire ViewData ou ajoutez-les dans le cadre de la session. Si vous n'utilisez que dans une vue, je recommande ViewData.

+0

Si vous l'utilisez dans plusieurs vues, vous recommanderiez d'utiliser un modèle de vue? – jamiebarrow