簡體   English   中英

在 ASP.NET Core MVC 中通過控制器從數據庫中讀取信息

[英]Reading information from database by controller in ASP.NET Core MVC

動作發生在控制器 asp.net core 中

// 獲取登錄網站的登錄人

var userName = _httpContextAccessor.HttpContext.User.Identity.Name; //(works/checked)

// 從數據庫中獲取有關此人的信息

var userDetails = _context.Members.FirstOrDefault(f => f.Adlogin == userName);//(works/checked)

// 將經理的登錄名與登錄該站點的人的經理的登錄名進行比較 // 並使用他的登錄名從“姓名”列中找到該經理的全名

var nameManager = _context.Members.Where(x => x.Login == userDetails.ManagerLogin).Select(i => new { userNameManager = i.Name}); //(works/checked)

// 不知何故我需要通過 viewdata 將數據發送到站點 // 我嘗試如下,但它不起作用

ViewData["Manager"] = nameManager;

錯誤:

RuntimeBinderException: 'DevExtreme.AspNet.Mvc.Builders.TextBoxBuilder.Value(string)' 的最佳重載方法匹配有一些無效參數

//在視圖中填充文本框

@(Html.DevExtreme().TextBox()
       .Value(ViewBag.Manager)
       .ReadOnly(true)

我想要的是:幫助發送/閱讀有關經理姓名的信息

我認為問題出在這一行:

var nameManager = _context.Members.Where(x => x.Login == userDetails.ManagerLogin).Select(i => new { userNameManager = i.Name});

這將返回一個集合(即使它只有一個成員)。

改用FirstOrDefault ,它將返回單個Member ,而不是Where返回一個集合。 我建議試試這個:

var nameManager = _context.Members
                          .FirstOrDefault(x => x.Login == userDetails.ManagerLogin)?.Name;

現在nameManager應該是單個字符串(不是集合),它將是MemberName屬性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM