Asp.Net mvc 5 tempdata doesn't work -


i learning asp.net mvc5 code in book.

public actionresult demotempdata() {     viewdata["msg1"] = "from viewdata message.";     viewbag.msg2 = "from viewbag message.";     tempdata["msg3"] = "from tempdata message.";     return redirecttoaction("redirect1"); }  public actionresult redirect1() {     tempdata["msg4"] = tempdata["msg3"];     return redirecttoaction("getredirectdata"); }  public actionresult getredirectdata() {     return view(); } 

getredirectdata view:

@{     viewbag.title = "getredirectdata"; }  <h2>getredirectdata</h2> <ul>     <li>viewdata-msg1:@viewdata["msg1"]</li>     <li>viewbag-msg2:@viewbag.msg2</li>     <li>tempdata-msg3:@tempdata["msg3"]</li>     <li>tempdata-msg4:@tempdata["msg4"]</li> </ul> 

i know viewdata , viewbag not pass value. msg3 , msg4 in view should have value, doesn't. check value in redirect1(), turns out msg3 null.
confused what's going on.

asp.net mvc tempdata stores it’s content in session state. tempdata gets destroyed after it’s used in subsequent http request.

in case assigning tempdata["msg3"] tempdata["msg4"]. once consume content tempdata["msg3"] gets destroyed. whenever try access tempdata["msg3"] null value.

the peek , keep methods allow read value without getting destroyed.

reference :

https://msdn.microsoft.com/enus/library/system.web.mvc.tempdatadictionary.peek(v=vs.118).aspx

object value = tempdata["value"];  tempdata.keep("value");  object value = tempdata["value"]; 

Comments

Popular posts from this blog

python - Operations inside variables -

Generic Map Parameter java -

arrays - What causes a java.lang.ArrayIndexOutOfBoundsException and how do I prevent it? -