Как отобразить данные пользователя в Layout?

95
16 апреля 2021, 05:50

Бьюсь с сей проблемой уже некоторое время. Суть такова. В ASP я не профи, поэтому спрашиваю у Вас. Не могу вытащить данные пользователя внутри Layout'а страницы. Пробовал по разному. К примеру этот способ не сработал

@using Microsoft.AspNetCore.Identity
@using KSM_Agro.Models
@inject SignInManager<User> SignInManager
@inject UserManager<User> UserManager
@{
    var user = await UserManager.GetUserAsync(User);
}

Вечно выбивает ошибку на то, что у меня не зарегистрирован IServiceProvider. Сразу попрошу. Не надо советовать передавать данные пользователя через ViewBag или подобные инструменты. Мне нужно взять именно из Layout. Почитал, что надо добавить в конфигурации через services.AddSingleton или AddTransient. Но и то и то вызывает одну и ту же ошибку No service for type 'Microsoft.AspNetCore.Identity.UserManager`[WebApp.Models.User]' has been registered. Я понимаю что он пишет, но при этом и регистрацию проводил. Что делать не знаю господа.

Answer 1

У вас не хватает регистрации Identity, или при регистрации указан неправильный тип пользователя. Проверьте Startup.ConfigureServices, там должна быть строка вида:

services.AddIdentity<User, IdentityRole>()...

В ней первый тип-параметр должен совпадать с тем, который вы используете в @inject UserManager<User> - это должен быть один и тот же тип User.

READ ALSO
Работа с event Action, отписка от события

Работа с event Action, отписка от события

Как в такой ситуации можно отписать метод? Отписка, используя (-=) после Invoke не работает, метод все равно вызывается

101
Как объединить и сложить статистику просмотров по дням из двух таблиц?

Как объединить и сложить статистику просмотров по дням из двух таблиц?

Нужно объединить статистику из двух таблиц с группировкой по дням (day)p1, p2 - разделы сайта, здесь только для наглядности

130