Récupérer les variables de Session dans ASP.NET MVC 4 (rasoir, vue)
J'ai écrit de nombreux sites web avec PHP. Maintenant, je dois créer le site web avec ASP net MVC 4 (c#) et je suis coincé avec des Sessions.
I. E. l'utilisateur doit aller à la page de connexion, saisissez son identifiant et son mot de passe. Si elles sont correctes, dans le contrôleur, j'ai mis la session avec le nom d'utilisateur, comme ceci:
Session["UserId"] = 10
Ce UserId valeur est utilisée pour montrer PartialViews (formulaire de connexion ou (après connexion) certains menus de l'application). Comment puis-je obtenir ce code d'utilisateur à l'intérieur de Rasoir ?
Après cette Vue:
if (Session.UserId == 10) { @Html.Partial("LoggedMenu") }
j'ai exception avec StackOverflow. :/
Pouvez-vous ajouter un ASP ou similaire balise s'il vous plaît?
Semble que dans ce scénario, vous ne devriez pas utiliser la session. Nom d'utilisateur doit être une partie du modèle (ou si pas partie du modèle, vous pouvez utiliser ViewBag) est retourné à la vue par le contrôleur.
Session sont mal, spécialement si vous utilisez d'Hébergement Cloud... être au courant!
Qu'est-ce que l'exception-vous obtenir?
Avez-vous essayez d'utiliser la même syntaxe pour la Session à la vue comme dans le contrôleur?
Semble que dans ce scénario, vous ne devriez pas utiliser la session. Nom d'utilisateur doit être une partie du modèle (ou si pas partie du modèle, vous pouvez utiliser ViewBag) est retourné à la vue par le contrôleur.
Session sont mal, spécialement si vous utilisez d'Hébergement Cloud... être au courant!
Qu'est-ce que l'exception-vous obtenir?
Avez-vous essayez d'utiliser la même syntaxe pour la Session à la vue comme dans le contrôleur?
OriginalL'auteur michaldck | 2013-06-08
Vous devez vous connecter pour publier un commentaire.
vous le faites mal...
Session[<item name>]
retourne une chaîne de caractères, vous devriez comparer avec une chaîne de caractères, ou de voter pour elle, alors, que ce soit(int)Session["UserId"] == 10
ouSession["UserId"] = "10"
.vous aussi, vous l'invocation d'une propriété qui n'existe pas
Session.UserId
pas exister en tant queSession
est comme un NameValueCollection, vous l'appelez par la demande du nom de l'élément.à la fin, vous devriez écrire
Vous dire que vous êtes à l'apprentissage, donc je tiens à souligner 2 choses:
Session[<item name>]
retourne un Objet n'est pas une chaîne.OriginalL'auteur balexandre
En dehors de cela: pour la gestion de l'identité à mieux utiliser la sortie de la boîte le système d'adhésion
OriginalL'auteur Mathias F
Ci-dessous est un exemple:
Contrôleur:
Vue:
Javascript:
alert() est côté client en javascript. Vous devez écrire le serveur asp var à la page javascript pour être en mesure de référence. Des puces le fait par l'appel de la @Html.Caché helper.
OriginalL'auteur Flea