2017-10-31 2 views
0

Ich habe eine ViewData, die eine Zeichenfolge wie folgt enthält.Lesen Objektwerte in Razor

{ Param1 = "1", Param2 = "2", Param3 = "3" } 

ich es auf ein Objekt Rasierapparat Variable habe die Einrichtung, aber ich kann diese Werte wie @ myVar.Param1 nicht lesen.

@{ 
    object myParameters = ViewData["parameters"]; 
} 

Ich weiß, wie man das in JS, aber nicht in Razor. Was ist der beste Weg, dies zu tun?

Grüße

+0

Wenn Sie "enthält eine Zeichenfolge" sagen, meinen Sie, dass Sie die Ansichtsdaten so einstellen? 'ViewData [" Parameter "] =" {Param1 = \ "1 \", Param2 = \ "2 \", Param3 = \ "3 \"} "; – AaronLS

+0

@AaronLS ViewData wird so eingestellt (ich habe keinen Zugriff ändern) 'new {Parameter = neu {Param1 =" 1 ", Param2 =" 2 ", Param3 =" 3 "}}'. Wenn man von der View liest, ist es so, als ob man ohne die Balken getippt hätte. –

Antwort

1

Da Sie anderswo Objekt von anonymen Typ (in der Steuerung) definiert verwenden, können Sie nicht stark typisierte haben Zugriff auf die Eigenschaften. Sie sollten jedoch Eval:

ViewData.Eval("parameters.Param1") 

verwenden können. Ich ermutige Sie jedoch, eine Klasse für dieses Modell zu definieren.

1

myParameters sollte dynamisch sein:

dynamic myParameters = ViewData["parameters"];

+0

Ich versuchte diesen Ansatz, aber nichts änderte im Vergleich zu meiner Variable als Objekt. –