Once "TempData" is read in the current request it's not available in the subsequent request. If we want "TempData" to be read and also available in the subsequent request then after reading we need to call "Keep" method as shown in the code below.
@TempData["MyData"];
TempData.Keep("MyData");
The more shortcut way of achieving the same is by using "Peek". This function helps to read as well advices MVC to maintain "TempData" for the subsequent request.
string str = TempData.Peek("Td").ToString();
If you want to read more in detail you can read from this detailed blog on MVC Peek and Keep.
If you want to Learn MVC from start below is the video link for the same.