在MVC视图中访问一些会话详细信息

时间:2015-07-19 12:48:59

标签: c# asp.net-mvc asp.net-mvc-4 session

我在登录控制器中有一个会话,我通过会话将详细信息列表发送到另一个页面。所以我需要在mvc视图中显示列表中的一个项目(我需要在我的mvc中显示UserName视图)。

我的控制器

    public ActionResult Login(User usrdtl, string returnUrl) 
        {
//some code here
 List<UserDtl> usrList = newsManager.GetUserdetailsByuId(usrdtl.uId);
                        System.Web.HttpContext.Current.Session["UsrSession"] = usrList ;
        }

这个usrList包含大量用户详细信息,我需要在我的视图中显示UserName。

在我看来,我试图将其视为,

<span>@Session["UsrSession"] </span>

但它显示我错误

  
    

System.Collections.Generic.List`1 [NTL.Sys.Entities.UserDtl]

  

我怎么能得到这个?

1 个答案:

答案 0 :(得分:3)

它实际上没有显示错误。它通过在对象上调用.ToString()来显示对象表示。

在您的情况下,Session["UsrSession"].ToString()会返回System.Collections.Generic.List1[NTL.Sys.Entities.UserDtl]

您的代码实际上没有任何问题,请修改它以准确显示您想要显示的内容。

我假设该列表恰好包含1个项目。要显示UserName,请尝试:

<span>@((Session["UsrSession"] as List<UserDtl>).First().UserName) </span>

如何显示列表取决于您,如果要显示用户列表,只需循环显示。上面的代码只是一个例子。