Asp.net 如何将视图模型值存储到会话

Asp.net 如何将视图模型值存储到会话,asp.net,asp.net-mvc,asp.net-mvc-3,asp.net-mvc-4,Asp.net,Asp.net Mvc,Asp.net Mvc 3,Asp.net Mvc 4,我已尝试将viewmodel存储到会话。 我将数据库存储到viewmodel,并希望将viewmodel值保存到会话中 我试着用 List<GetUserNameViewModel> getName = _accountService.GetLoginName(UserID) Session["GetName"] = getName; 如何将viewmodel值保存到会话 这是我的服务 public List<GetUserNameViewMo

我已尝试将viewmodel存储到会话。 我将数据库存储到viewmodel,并希望将viewmodel值保存到会话中

我试着用

List<GetUserNameViewModel> getName = _accountService.GetLoginName(UserID)
                Session["GetName"] = getName;
如何将viewmodel值保存到会话

这是我的服务

public List<GetUserNameViewModel> GetLoginName(int UserID)
        {
            List<User> user = (from d in _UserRepository.All()
                               where d.UserID == UserID
                               select d).ToList();

            List<GetUserNameViewModel> GetName = new List<GetUserNameViewModel>();

            foreach (User users in user)
            {
                GetName.Add(new GetUserNameViewModel
                    {
                        UserName = users.UserName
                    });
            }
            return GetName;
        }
public List GetLoginName(int UserID)
{
List user=(来自_UserRepository.All()中的d)
其中d.UserID==UserID
选择d).ToList();
List GetName=new List();
foreach(用户中的用户)
{
添加(新的GetUserNameViewModel
{
UserName=users.UserName
});
}
返回GetName;
}
我的控制器

   public ActionResult Index()
        {
            int UserID = Convert.ToInt32(User.Identity.Name);
            List<GetUserNameViewModel> getName = _accountService.GetLoginName(UserID);
                Session["GetName"] = getName;
            return View();
        }
public ActionResult Index()
{
int UserID=Convert.ToInt32(User.Identity.Name);
List getName=\u accountService.GetLoginName(UserID);
会话[“GetName”]=GetName;
返回视图();
}
在视图(Razor)中,如果列表中有两个或多个
GetUserNameViewModel
对象引用,或者只需调用
FirstOrDefault()
方法从
列表中读取第一个或默认元素,则必须强制转换对象以遍历
列表


我想在GetUserNameViewModel中获取用户名的值
   public ActionResult Index()
        {
            int UserID = Convert.ToInt32(User.Identity.Name);
            List<GetUserNameViewModel> getName = _accountService.GetLoginName(UserID);
                Session["GetName"] = getName;
            return View();
        }
@{
  List<GetUserNameViewModel> getNames =  Session["GetName"] as List<GetUserNameViewModel>;

  for(var name in getNames){
     //statements
  }

 //Or
 GetUserNameViewModel name = getNames.FirstOrDefault();

}
public GetUserNameViewModel GetLoginName(int UserID)
 {
   User user = (from d in _UserRepository.All()
                     where d.UserID == UserID
                     select d).FirstOrDefault();

  if(user==null)
      return null;

  return new GetUserNameViewModel() { UserName = user.UserName };
 }