Как отобразить текущие данные вошедших в систему пользователей
я добавил некоторые поля в таблицу aspnetusers, такие как firstname lastname
вот мой контроллер
public ActionResult profile(string id) { var user = db.Users.Single(u => u.UserName == id); return View(user); }
и мой взгляд:-
@model MVCProfile.Models.ApplicationUser @{ ViewBag.Title = "profile"; Layout = "~/Views/Shared/_Layout.cshtml"; } <h2>Users Profile</h2> Firstname:@Model.FirstName<br/> Lastname:@Model.LastName<br/> email:@Model.Email<br/> City:@Model.City<br/>
Что я уже пробовал:
я получаю следующую ошибку при загрузке страницы
Sequence contains no elements
An exception of type 'System.InvalidOperationException' occurred in System.Core.dll but was not handled in user code
как отобразить текущую запись вошедшего пользователя я много искал в google но есть только на примере который отображает только userid
F-ES Sitecore
ВАР пользователя = дБ.Пользователей.Один(у =&ГТ; у.Имя пользователя == ИД);
Ваш "сингл", вероятно, ничего не возвращает, потому что нет имени пользователя, которое соответствовало бы"id". Использование Single, как правило, плохая идея, используйте SingleOrDefault, чтобы вы могли справиться, когда нет совпадающих данных.
Himanshu.A.Joshi
после использования singleordefault вместо single я получаю ошибку в поле зрения здесь Firstname:@Model.FirstName, ссылка на который не установлена на экземпляр объекта.
Richard Deeming
Потому что нет UserName
это соответствует указанному идентификатору.Single
будет выброшено исключение; SingleOrDefault
будет возвращать null
Вам нужно проверить, является ли это значение null
прежде чем показать его.
var user = db.Users.SingleOrDefault(u => u.UserName == id); if (user == null) return View("UserNotFound"); return View(user);
Himanshu.A.Joshi
он показывает мне, что пользователь равен нулю, что делать
Richard Deeming
Ты хоть читал мой комментарий?!
Есть НЕТ сопоставление пользователей в вашей базе данных. Так Single
выбросит исключение, и SingleOrDefault
будет возвращать null
.
Если SingleOrDefault
возвращается null
, то вместо этого вам нужно отобразить представление "не найдено".
Как я уже говорил час назад.
Himanshu.A.Joshi
да, я сделал то, что вы сказали singleordefault возвращает null, и он отображает мне мое не найденное представление, но я спрашиваю вас, как отобразить сведения о вошедшем в систему пользователе