ASP.NET Core - идентичность каркаса, такая как MVC

Я создал проект MVC веб-приложения с аутентификацией индивидуальных пользователей.

Впоследствии я создал собственный UserIdentity. Я пытаюсь изменить представление Identity по умолчанию «Регистрация», добавляя мои новые поля, однако мне удалось создать только новые страницы как Razor Pages.

Мой вопрос: можно ли объединить эти новые представления в некую структуру, например MVC? Я вообще не хотел бы смешивать MVC с Razor Pages.

Если это невозможно, есть ли способ создать контроллер, который переопределяет поведение по умолчанию (например, Identity / Account / Register)?

«Я бы не хотел смешивать MVC с Razor Pages» - почему бы и нет? Они не конфликтуют. Фактически, Razor Pages является (построенный поверх) MVC.

Henk Holterman 01.06.2019 12:25
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
16
1
5 372
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Нет, это невозможно. Команда Identity решила переключиться на Razor Pages для пользовательского интерфейса по умолчанию, и теперь это все, что есть. Если хотите, вы можете вручную создавать контроллеры и представления, ссылаясь на код из шаблонов Razor Pages, чтобы создать то же самое в MVC, но это ваша ответственность. Нет автоматического способа сделать это.

Это именно то, что я делаю сейчас, когда премьер-министр сказал, что «это запутает других разработчиков», если у нас будет MVC повсюду, луковая архитектура, и вдруг весь материал Identity окажется на страницах Razor, а также вся логика там. Честно говоря, я понял его точку зрения, это просто выглядит и кажется "грязным"

Varin 26.05.2020 13:36

Раньше я плохо относился к Razor Pages, но они мне нравились. У них очень ограниченный сценарий использования, но они не могут быть побеждены в этом сценарии: в основном простой CRUD и в основном статические страницы с данными. Они полностью автономны, и поэтому их очень легко понять. Нужно что-то изменить на странице редактирования Foo? Перейдите на страницу FooEdit Razor. Сделанный. Сначала я попытался переработать идентичность в структуру MVC, но затем понял, что версию Razor Page намного проще использовать и поддерживать.

Chris Pratt 26.05.2020 13:42

Вас не беспокоит, что (если это так) остальная часть проекта следует какому-то строгому шаблону проектирования, Identity или любая другая основанная на Razor часть «выделяется»? Мне искренне любопытно, потому что я схожу с ума, пытаясь следовать некоторому шаблону, и Microsoft бросает на него гаечный ключ :) Мой проект Core не должен вообще зависеть от ASP, но теперь он должен, поскольку ApplicationUser должен расширять IdentityUser и таким образом требуя зависимости. Должен ли я просто не волноваться и продолжать?

Varin 26.05.2020 13:52

Лот, чтобы развернуть там. Честно говоря, я бы сказал, что шаблон MVC в значительной степени уходит. Слишком много движущихся частей, и, честно говоря, Microsoft с самого начала не справилась с этим должным образом. Большинство веб-сайтов можно полностью создать с помощью Razor Pages. Конечные точки API технически остаются MVC, но на самом деле в этом уравнении нет буквы V. Для более продвинутых требований к приложениям, Razor Components / Blazor - это билет. Это или традиционные клиентские фреймворки, такие как Angular. В любом случае нет никакого MVC. Честно говоря, я не могу придумать хороший вариант использования для настройки чистого стиля MVC.

Chris Pratt 26.05.2020 15:16
Ответ принят как подходящий

Для всех, кто хочет «выстроить» идентичность в MVC, я рекомендую следующий подход:

Зайдите в официальный репозиторий ASP.net на Github (https://github.com/aspnet/Identity) и загрузите его. Откройте решение и найдите проект IdentitySample.Mvc. Скопируйте необходимые файлы в свой проект.

Важная заметка: Не забудьте изменить пространство имен добавленных файлов, поскольку они принадлежат другому проекту.

Другие вопросы по теме