2015-07-19 120 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