2016-12-20 2 views
0

Ich versuche, eine gemeinsame Eigenschaft in meinem C# Controller zu implementieren, wo ich es wie folgt definiert haben: dieseErstellen eines gemeinsamen Grundstück in allen Verfahren über Controller C#

public string guid; 
    public string _gu_id 
    { 
     get { return guid; } 
     set { guid = value; } 
    } 

public ActionResult ActionFirst() 
{ 
_gu_id = something...; 
} 

public ActionResult ActionSecond() 
{ 
// checking now if the _gu_id is !=null 
if(_gu_id!=null) 
// do something here 
} 

Wie die Eigenschaft wird in die erste Aktion, aber ihr Wert ist nicht in der 2. one ...

Ich kann es als statisch, aber das ist keine Lösung als statische Variable sollte in Web vermieden werden ..?

Edit: Um das Problem in mehr Details zu erklären:

Wenn die proprety _gu_id in erstem ActionFirst Verfahren eingestellt ist, muß ich seinen Wert in ActionSecond Methode holen zu können, ohne

... statische Variablen
+1

XY-Problem. Sie haben ein Problem, für das Sie die Lösung "Erstellen einer Mitgliedsvariablen in meinem Controller" sind. Erklären Sie, welches Problem Sie damit lösen möchten, da Controller pro Anfrage erstellt werden. Sie müssen wahrscheinlich etwas in einer Sitzung, Token, Header oder anderswo speichern. – CodeCaster

+0

@CodeCaster Das Problem ist wie folgt: die Variable GUID muss in der zweiten Methode verfügbar sein, wenn in der ersten Methode ... Ich erwähnte, ich könnte statische Variable für diese verwenden, aber ich vermeide es, sie zu verwenden, da ich sehr hatte unangenehme Erfahrung mit ihnen ... – User987

+0

@CodeCaster Also nach dem Setzen der _gu_id Variable in der ersten Methode, wenn die zweite Methode aufgerufen wird, muss ich den _gu_id Wert in der zweiten Methode, die in der ersten Methode ... – User987

Antwort

4

Immer wenn Sie auf die neue Aktionsmethode eines neuen Controllers umleiten, erhalten Sie eine neue Anfrage, und Sie können den Wert von einer Anfrage zur nächsten nicht so beibehalten, wie Sie es wünschen.

Verwenden Sie Session-Variable lieber wie folgt.

Session["guid"] = "YourValue"; 
2

Wenn Sie mit persistenten Session-Variablen (in der Regel eine gute Idee) zu vermeiden, MVC bietet auch TempData für auf Daten zwischen Umleitungen hängen.

+0

Du meinst wie TempData ["Key"]? – User987

Verwandte Themen