【问题标题】:ASP.NET Core - Scaffold Identity like MVCASP.NET Core - 像 MVC 一样的脚手架标识
【发布时间】:2019-04-21 09:58:13
【问题描述】:

我创建了一个带有个人用户帐户身份验证的 Web 应用程序 MVC 项目。

之后我创建了一个自定义 UserIdentity。我正在尝试更改 Identity 的默认“注册”视图,添加我的新字段,但是我只设法将新页面搭建为 Razor 页面。

我的问题是:是否可以在 MVC 之类的结构中构建这些新视图?我根本不想将 MVC 与 Razor Pages 混合使用。

如果这不可能,有没有办法创建一个覆盖默认行为的控制器(例如身份/帐户/注册)?

【问题讨论】:

  • “我不想将 MVC 与 Razor Pages 混合使用”- 为什么不呢?他们不冲突。事实上,Razor Pages (建立在 MVC 之上)。

标签: razor asp.net-core asp.net-core-mvc asp.net-identity


【解决方案1】:

对于任何想在 MVC 上“搭建”身份的人,我推荐以下方法:

去官方身份ASP.net Github Repository (https://github.com/aspnet/Identity) 下载。打开解决方案并搜索 IdentitySample.Mvc 项目。将必要的文件复制到您的项目中。

重要提示:不要忘记更改添加文件的命名空间,因为它们属于不同的项目。

【讨论】:

    【解决方案2】:

    不,这是不可能的。 Identity 团队决定将默认 UI 切换到 Razor Pages,现在就是这样。如果你愿意,你可以手动创建控制器和视图,从脚手架的 Razor 页面中引用代码来在 MVC 中创建相同的东西,但这取决于你。没有自动的方法可以这样做。

    【讨论】:

    • 这正是我现在正在做的事情,正如 PM 所说,如果我们到处都有 MVC,洋葱架构,“它会混淆其他开发人员”,突然间所有的身份信息都在 Razor 页面中,所有逻辑也在那里。我明白他的观点是公平的,它只是看起来和感觉“凌乱”
    • 我以前对 Razor Pages 有不好的看法,但他们已经在我身上长大了。它们的使用场景非常有限,但在那种场景中它们无法被击败:基本上是简单的 CRUD,并且大部分是带有数据的静态页面。它们是完全独立的,因此非常容易理解。需要更改 Foo 编辑页面中的某些内容?转到 FooEdit Razor 页面。完毕。我最初尝试将标识重新设计为 MVC 结构,但后来意识到 Razor Page 版本更易于使用和维护。
    • 项目的其余部分遵循一些严格的设计模式,Identity 或任何其他基于 Razor 的部分“脱颖而出”,这不会打扰您吗?我真的很好奇,因为我非常疯狂地试图遵循某种模式,而微软对此投入了一把扳手:) 我的核心项目根本不应该依赖 ASP,但它现在必须依赖于 ApplicationUser 必须扩展 IdentityUser 和因此需要依赖。我应该不关心并继续吗?
    • 有很多东西可以打开。老实说,我想说 MVC 模式几乎要消失了。移动部件太多,坦率地说,微软一开始就做得不好。大多数网站都可以完全使用 Razor Pages 构建。从技术上讲,API 端点仍然是 MVC,但在这个等式中并没有真正的 V。对于更高级的应用程序要求,Razor 组件/Blazor 是门票。或者像 Angular 这样的传统客户端框架。无论如何,没有 MVC。老实说,对于纯 MVC 样式设置,我想不出一个好的用例。
    猜你喜欢
    • 2019-11-08
    • 1970-01-01
    • 2016-10-10
    • 1970-01-01
    • 1970-01-01
    • 2017-11-16
    • 2011-10-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多