2009-04-15 6 views
1

J'essaie d'envoyer l'ID utilisateur (entier) d'une vue à l'action. Si je le passe en utilisant l'objet routevalues, l'identifiant de l'utilisateur sera visible dans la barre d'adresse du navigateur. Comment puis-je passer l'identifiant de l'utilisateur à l'action sans utiliser la méthode susmentionnée?Passer des données de la vue à l'action? Solution?

Répondre

1

Vous pouvez utiliser un élément d'entrée masqué dans un formulaire. Vous devez généralement utiliser POST et non GET (c'est-à-dire utiliser un formulaire et non un href) pour tout ce qui modifie les données de votre système.

+0

+1; mais il est tellement douté ** drôle ** quand google supprime toutes vos données lors de l'exploration des liens sur votre site ;-p –

+0

Hehe, absolument :) –

1

L'identifiant utilisateur est généralement déduit de votre mécanisme d'authentification (cookie, etc.), donc pour l'utilisateur actuel vous ne devriez pas avoir besoin de le transmettre.

Le temps principal, vous souhaitez inclure dans la demande est lorsque la page affichée concerne aux utilisateurs - et en particulier lorsque vous (ou un administrateur) voulez parcourir d'autres dossiers utilisateurs - vous pouvez utiliser "https://stackoverflow.com/users/current/orders "(utilisez le cookie) ou"https://stackoverflow.com/users/12345/orders "(et vous devriez vérifier l'autorisation de parcourir 12345). Notez que si vous utilisez/current/or similar, vous devez vous assurer qu'il n'est pas mis en cache entre différents utilisateurs - donc, à bien des égards, il est plus simple d'afficher simplement l'ID utilisateur et de faire un lien avec l'URL; il suffit d'aller dans le cas simple "/ users/12345/orders".

Quel est le scénario ici?

+0

Il ya une liste d'amis sur la page et après avoir cliqué sur le lien "Supprimer", cet ID utilisateur (ID ami) doit être passé à l'action. J'ai essayé viewdata mais comme j'utilise la boucle foreach(), je reçois l'erreur "L'élément portant ce nom est déjà ajouté à viewdata". – buntykawale

Questions connexes