2009-08-02 3 views
0

Mögliche Duplizieren:
How to assign Profile values?Wie erhalten Sie das Mitgliedschaftsprofil eines Benutzers in einer ASP.NET MVC-Ansicht?

Ich bin mit ASP.NET MVC und die Membership-Provider. Wie erhalte ich das Profil eines Benutzers in einer Ansicht? eine bestimmte Methode, um es zu bekommen?

Das Template-Projekt aus der Box Zugriff auf die Benutzernamen auf diese Weise:

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

Ich mag würde eine ähnliche Art und Weise haben, um die Profildaten zugreifen.

+0

meine Antwort aktualisiert ... –

Antwort

1

Die Art und Weise das Benutzerprofil auf MVC zuzugreifen, ist durch das Profil-Variable in der Ansicht, wie folgt aus:

<%= Profile %> 
+1

Funktioniert nur für Websites, nicht für Webanwendungen. –

+0

Weitere Informationen über den Kommentar von @Robert S. finden Sie unter http://stackoverflow.com/questions/426609/how-to-assign-profile-values – jamiebarrow

2

In MVC sollten Sie nicht direkt in der Ansicht auf das Profil zugreifen. Sie sollten ein Modellobjekt mit values of the user profile in the controller füllen und die Ansicht zum Rendern dieser Werte verwenden.

+0

Das würde bedeuten, dass ich ein Ansichtsmodell machen müsste für absolut jede View, die ich habe und füge die Mitgliedschaftsdaten hinzu. Ich verstehe, wie das reine MVC ist, aber ich finde es hässlich und umständlich. Außerdem zeigt die integrierte Vorlage, wie man auf Page.User.Identity.Name zugreift, um den Benutzernamen zu erhalten, ist die Vorlage falsch? – Pablo

+0

Erstellen Sie ein Basis-ViewModel mit den Mitgliedschaftsdaten und verwenden Sie dieses. Wenn Sie zusätzliche Daten für eine bestimmte Ansicht benötigen, erben Sie die Basis und fügen Sie die Details hinzu. – svinto

+0

Svinto: die meisten meiner Ansichten sind in Ordnung mit nur dem Modell, direkt aus dem Entity-Framework. Wenn Sie ein Basis-ViewModel verwenden, bedeutet das, dass Sie für jede Ansicht mehr oder weniger zusätzliche Klassen haben müssen. Ist das der elegante Weg? – Pablo

2

Mitgliedschaft wird auf der Serverseite behandelt; Wenn Sie möchten, dass diese Informationen für die View verfügbar sind, verwenden Sie entweder Ihre Session oder das ViewData-Wörterbuch. Bevor Sie die Seite rendern, fügen Sie die richtigen Daten oder Objekte in das ViewData-Wörterbuch ein oder fügen Sie sie als Teil der Sitzung hinzu. Wenn Sie nur in einer Ansicht verwenden, empfehle ich ViewData.

+0

Wenn Sie es in mehr als einer Ansicht verwenden, würden Sie ein View-Modell empfehlen? – jamiebarrow

Verwandte Themen