2017-07-19 39 views
0

請檢查我的控制器&查看部分。在這裏,我使用ViewBag將幾行和單列傳遞給我的視圖。這就是爲什麼我需要使用foreach來顯示任何值。我只需要一個單一的行值作爲字符串,並希望顯示它從視圖而不使用foreach。請告訴我如何返回一個簡單的字符串到我的視圖沒有foreach。取單記錄並返回普通字符串查看

我的控制器:

ViewBag.SearchedUsersTable = ctx.SearchedUsers.Where(x => x.SearchedUserID == SearchedUserID.SearchedUserID).ToList(); 

筆者認爲:

@if (ViewBag.SearchedUsersTable != null) 
{ 
    foreach (var item in ViewBag.SearchedUsersTable) 
{ 
    @item.EbayUsername; 
} 
} 
+2

你爲什麼不使用模型? –

+0

你的意思是使用模型? –

+0

是的。因爲你有一個搜索用戶的列表。 –

回答

0

您可以使用您擁有的集合FirstOrDefault方法。

@if (ViewBag.SearchedUsersTable != null) 
{ 
    var user= (ViewBag.SearchedUsersTable as List<SearchedUser>..FirstOrDefault(); 
    if (user != null) 
    { 
    <p>@user.EbayUsername</p> 
    }  
} 

,如果你確實在視圖中只需要項目(行),我強烈建議只從視圖中傳遞。爲什麼要查詢動作方法中的所有記錄?

ViewBag.SingleUserName= ctx.SearchedUsers 
          .Where(x => x.SearchedUserID == SearchedUserID.SearchedUserID) 
          .Select(s=>s.EbayUsername) 
          .FirstOrDefault(); 

並在視圖

<p>@ViewBag.SingleUserName</p> 
+0

控制器返回ToList()幾行。我只能從名爲「EbayUsername」 –

+0

的顯示器中顯示單個值您想要顯示單列還是多列?您目前的代碼會在以後執行。 – Shyju

+0

謝謝第二部分幫助我 –