2009-04-15 15 views
1

Ich versuche, die Benutzer-ID (Integer) von einer Ansicht an die Aktion zu senden. Wenn ich es mit dem routevalues-Objekt übergebe, wird die Benutzer-ID in der Browser-Adressleiste angezeigt. Wie kann ich Benutzer-ID aus Sicht zu der Aktion ohne Verwendung der zuvor genannten Methode übergeben?Daten von der Ansicht zur Aktion übergeben? Lösung?

Antwort

1

Sie können ein verborgenes Eingabeelement in einem Formular verwenden. In der Regel sollten Sie POST und nicht GET verwenden (d. H. Ein Formular und keine href verwenden) für alles, was die Daten in Ihrem System ändert.

+0

+1; aber es ist einfach so verdammt ** witzig ** wenn Google alle deine Daten beim Crawlen der Links auf deiner Seite löscht ;-p –

+0

Hehe, absolut :) –

1

Die Benutzer-ID wird normalerweise von Ihrem Authentifizierungsmechanismus (Cookie usw.) abgeleitet, so dass Sie für den aktuellen Benutzer Benutzer nicht benötigen, um es herumzugeben.

Die Hauptzeit Sie würde dies in der Anforderung enthalten ist, wenn die Seite bezieht den Benutzern angezeigt wird - und insbesondere dann, wenn Sie (oder ein Administrator) andere Benutzer Datensätze durchsuchen möchten - dann könnten Sie verwenden "https://stackoverflow.com/users/current/orders "(den Cookie verwenden) oder"https://stackoverflow.com/users/12345/orders "(und Sie sollten die Berechtigung zum Durchsuchen von 12345 überprüfen).

Beachten Sie, dass wenn Sie/current/o.ä. verwenden, sollten Sie sicherstellen, dass es nicht zwischen verschiedenen Benutzern zwischengespeichert wird - so ist es in vielerlei Hinsicht einfacher, die Benutzer-ID anzuzeigen und mit der URL zu hacken; gehen Sie einfach für den einfachen "/ users/12345/orders" Fall.

Was ist das Szenario hier?

+0

Es gibt eine Liste von Freunden auf der Seite und nachdem Sie auf "Entfernen" geklickt haben, sollte diese Benutzer-ID (Freund-ID) an die Aktion übergeben werden. Ich habe viewdata ausprobiert, aber da ich foreach() loop verwende, erhalte ich den Fehler als "Objekt mit diesem Namen wurde bereits zu viewdata hinzugefügt". – buntykawale

Verwandte Themen