我创建了一个具有“个人用户帐户”身份验证的Web应用程序MVC项目。
之后,我创建了一个自定义UserIdentity。我试图更改“身份”的默认“注册”视图,以添加新字段,但是我只能将新页面作为“剃刀页面”设置为脚手架。
我的问题是:是否可以像MVC这样的结构支持这些新视图?我根本不想将MVC与Razor Pages混在一起。
如果这不可能,有什么办法可以创建一个覆盖默认行为(例如,身份/帐户/注册)的控制器?
答案 0 :(得分:2)
对于任何想要在MVC上“支持”身份的人,我建议采用以下方法:
转到官方身份ASP.net Github存储库(https://github.com/aspnet/Identity)并下载。打开解决方案,并搜索IdentitySample.Mvc项目。将必要的文件复制到您的项目中。
重要提示::不要忘记更改所添加文件的名称空间,因为它们属于不同的项目。
答案 1 :(得分:0)
否,这是不可能的。身份团队决定切换到默认页面UI的“剃刀页面”,现在一切已完成。如果愿意,您可以手动创建控制器和视图,并从脚手架的Razor Pages中引用代码以在MVC中创建相同的东西,但是就在您身上。没有自动的方法。
答案 2 :(得分:-1)
是否可以像MVC这样的结构支撑这些新视图?
我不确定,因为当您生成一些脚手架项目时,该项目应位于文件夹Areas/Identity/Pages/Account/...
中。但是我知道一种覆盖从Identity/Account/Register
到users/register
这样的路径的方法。
您可以打开文件Register.cshtml
,并将@page
替换为@page "/users/register"
。
与登录页面相同,将文件@page
中的@page "/users/login"
替换为Login.cshtml
。完成。
您需要做的所有其他事情是:根据需要更改样式,无需将所有文件移动到/Views/Users
。浪费你的时间。
在某些控制器中,当您需要重定向到注册页面时,可以尝试:
Redirect("/users/register");