VS 2017 ASP.NET Core Web 应用程序和个人用户帐户有效,但页面不存在
Posted
技术标签:
【中文标题】VS 2017 ASP.NET Core Web 应用程序和个人用户帐户有效,但页面不存在【英文标题】:VS 2017 ASP.NET Core Web Application and Individual User Accounts works but pages are non-existent 【发布时间】:2018-12-15 04:33:58 【问题描述】:当我使用“ASP.NET Core Web 应用程序”/“Web 应用程序”(非 MVC)/“个人用户帐户”创建 Web 项目时......我得到了带有注册和登录按钮的示例项目,显示了他们的当我点击它们时相应的页面。但是......非常奇怪的是,如果我在注册页面上搜索“创建一个新帐户”,它没有找到......还有更多......身份区域或任何地方都没有 AccountController......所以1)这些页面不在我的解决方案文件夹中的任何位置,2)这些页面到底是如何显示的?!?我现在在两台不同的电脑上试过。 (使用 Core 2.1)
作为示例,此链接有效:
<a asp-area="Identity" asp-page="/Account/Login">Login</a>
然后带我去:
https://localhost:44300/Identity/Account/Login
然而我的文件夹结构(在解决方案和磁盘上)看起来像这样:
【问题讨论】:
***.com/questions/50802781/… Where are the Login and Register pages in an AspNet Core scaffolded app?的可能重复 【参考方案1】:带有 Identity 的 ASP.NET Core 2.1 自动包含“默认 UI”。这是一个 Razor Pages 类库,在 Startup
中通过 AddDefaultIdentity
引用,实际上它实际上调用了 AddDefaultUI
。
如果您想要项目中的实际文件,则需要将它们添加到脚手架中。在解决方案资源管理器中右键单击您的项目并选择添加 > 新建脚手架项...然后,单击左侧的身份列表,然后添加按钮。将弹出一个新窗口,允许您选择要包含的页面、上下文等。按照您喜欢的方式进行配置。
同样值得注意的是,只要你使用AddDefaultIdentity
,默认的 UI 仍然包含在内,这意味着你实际上并不需要所有的脚手架文件,如果你想要其中任何一个.它们本质上将用作替代。将使用您项目中特别包含的任何内容,而缺少的任何内容都将从默认 UI 中提取。
这也意味着,如果您想要执行诸如使用标准控制器操作和视图而不是 Razor 页面之类的操作,则默认 UI 仍然处于活动状态,并具有优先权。如果您希望完全关闭默认 UI,则必须使用 AddIdentity
或 AddIdentityCore
而不是 AddDefaultIdentity
。
【讨论】:
【参考方案2】:ASP.NET Core 2.1 引入了Razor UI in class libraries。它的 UI 标识在 nuget package 中。
这样做的好处是您现在可以将 UI 与您的库一起打包,然后公开 UI 以进行覆盖。
post 描述了如何覆盖 UI。本质上,您将要覆盖到项目中的页面添加到 /Areas/Identity/Pages.... 目前最简单的方法是运行 scaffolder for identity 和 visual walkthrough。
【讨论】:
以上是关于VS 2017 ASP.NET Core Web 应用程序和个人用户帐户有效,但页面不存在的主要内容,如果未能解决你的问题,请参考以下文章
ASP.Net Core:在VS2017中搭建React.js + webpack + babel
如何将 jQuery UI 添加到 Asp.Net Core VS2017?
在 asp.net core vs2015 update2 情况况下创建 asp.net core web application 的问题
asp.net core VS goang web[修正篇]
Asp.Net core (Full .Net framework) vs Asp.Net core (.Net Core) 性能