Following are the ways to maintain session in MVC: tempdata, viewdata, viewbag, hidden fields or HTML controls
Temp data - Internally uses session variables to maintain data when you move from one controller to another controller or from one action to another action i.e. when you redirect.
View data - Maintains data when you move from controller to view.
View Bag - A dynamic wrapper around view data.Uses dynamic keyword internally.
Hidden fields and HTML controls - Maintains data from UI to controller only. You may send data from hidden fields or hTML controls to controller using GET or POST methods.
Hope it helps.