Как мне полностью настроить стандартные страницы ASP .Net Core Identity? - PullRequest
0 голосов
/ 09 января 2019

В настоящее время я пытаюсь изучить и понять все новые кусочки идентичности с помощью .Net Core 2.1 / MVC. Раньше я использовал MVC3 MVC Identity, и он был прост: он автоматически создавал модель, представление и контроллеры, и я мог легко редактировать все и что угодно.

В .Net Core он, кажется, автоматически наследует все от фреймворка, и я просто не понимаю, как его переопределить.

Я следовал инструкциям , расположенным здесь , и сумел очистить все страницы (например, создать пользователя, сбросить пароль, войти в систему), однако это не создает ни одну из моделей или контроллеров.

Из-за этого у меня теперь есть проект со всеми страницами, но он не может быть собран со всеми отсутствующими моделями:

[Output/Models missing]

CS0246  The type or namespace name 'ChangePasswordModel' could not be found (are you missing a using directive or an assembly reference?

Мне кажется, что я упускаю что-то очевидное, и я не могу поверить, что я так сильно борюсь за то, что ~ 10 лет назад было просто.

Как я могу создать / импортировать отсутствующие контроллеры и модели?

1 Ответ

0 голосов
/ 09 января 2019

Идентичность поставляется с пользовательским интерфейсом по умолчанию, состоящим из страниц Razor и статических файлов, размещенных в библиотеке классов Razor. Он добавляется по умолчанию, когда вы используете AddDefaultIdentity для включения Identity в своем проекте или явно вызываете AddDefaultUI в любом из других методов расширения начальной загрузки Identity (AddIdentity / AddIdentityCore).

Представления и статические файлы в библиотеках классов Razor являются встроенными ресурсами, и поэтому они обрабатываются так, как если бы они физически существовали непосредственно в приложениях, которые на них ссылаются. Тем не менее, все, что действительно существует в вашем приложении, будет использовано до любых встроенных ресурсов. Таким образом, вы можете переопределить все, что приходит из RCL, просто создав тот же файл в том же месте, что и в RCL в вашем приложении. Каркас идентификации просто копирует выбранные страницы Razor в ваш проект, так что они будут переопределены таким образом.

Поскольку Razor Pages используются для пользовательского интерфейса по умолчанию, здесь нет контроллеров или отдельных классов моделей. Модели, используемые для представлений, установлены в кодовых страницах Razor Page, поэтому для каждой страницы, на которой вы строите леса, необходимо добавить файлы Page.cshtml и Page.cshtml.cs.

Если после сборки скаффолда происходит сбой сборки, сборка не видит файлы *.cshtml.cs (кодовые ссылки). Убедитесь, что они существуют в файловой структуре вашего проекта. Если это не так, в вашем экземпляре Visual Studio есть фундаментальная проблема со скаффолдом, которая, вероятно, потребует переустановки или хотя бы ремонта Visual Studio.

Если предположить, что они есть, значит, что-то застряло в процессе сборки. Иногда файлы блокируются, и Visual Studio будет жаловаться на то, что в них отсутствуют ссылки, а на самом деле просто отсутствуют те сборки, из которых они получены. В таких случаях вы можете перейти непосредственно к своему проекту и полностью удалить каталоги bin и obj. Затем вернитесь в Visual Studio и выполните перестройку. Если у вас есть более одного проекта, вам следует перестроить все ваше решение, так как это может быть ссылка на проект, который фактически не может быть собран.

...