2015-07-19 124 views
0

我在我的登录控制器中有一个会话,并且我通过会话将详细信息列表发送到另一个页面。因此,我需要将列表中的一项显示在mvc视图中(主要是我需要在我的MVC视图中显示用户名)。在MVC视图中访问一些会话详细信息

我的控制器

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包含大量的用户的细节,我需要显示用户名在我看来。

在我看来,我试图把它作为,

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

但它让我错误

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

我怎样才能得到这个?

+0

因为它的列表,你必须迭代列表来获取结果。您可以使用LinQ或循环来实现相同的\ – Tushar

回答

3

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

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

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

我假设列表中只包含1个项目。要显示的用户名,尝试:

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

如何显示的列表是你,如果你想显示用户清单,只是通过它循环。上面的代码只是一个例子。

+0

然后它还返回列表know.how从该列表客户端获取用户名? – TechGuy

+0

@TechGuy:查看我更新的答案。 –

+0

它显示错误“无法找到类型或命名空间名称'UserDtl'(您是否缺少使用指令或程序集引用?” – TechGuy