[英]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
應該是單個字符串(不是集合),它將是Member
的Name
屬性。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.