首页 > 解决方案 > 无法为继承 IdentityUser 的类构建带有视图的 Asp.net 核心控制器

问题描述

我的应用程序中有一个User课程

    public class User
    {
        [Required, MinLength(3), MaxLength(10)]
        public string FirstName { get; set; }

        [MinLength(3), MaxLength(10)]
        public string MiddleName { get; set; }

        [Required, MinLength(3), MaxLength(10)]
        public string LastNmae { get; set; }

    }

然后我尝试为此类构建带有视图的控制器,模型类的下拉列表包括用户类和其他扩展它的类,例如StudentAdmin

然后我让User类继承IdentityUser

    public class User: IdentityUser
    {
        [Required, MinLength(3), MaxLength(10)]
        public string FirstName { get; set; }

        [MinLength(3), MaxLength(10)]
        public string MiddleName { get; set; }

        [Required, MinLength(3), MaxLength(10)]
        public string LastNmae { get; set; }

    }

然后尝试User再次为该类搭建控制器和视图,现在模型类的下拉列表不再包含 User 类和其他扩展它的类

怎么了

标签: entity-frameworkasp.net-core

解决方案


众所周知,ASP.NET Core 提供 ASP.NET Core Identity 作为 Razor 类库,它使我们能够在 Identity Razor 类库中做脚手架。

有关更多信息,请查看此文档:https ://docs.microsoft.com/en-us/aspnet/core/security/authentication/scaffold-identity?view=aspnetcore-3.1&tabs=visual-studio

尝试再次为 User 类搭建控制器和视图,现在模型类的下拉列表不再包含 User 类和其他扩展它的类

正如您所提到的,使用脚手架无法根据继承自IdentityUserVisual Studio 的自定义用户模型自动生成视图和控制器。

如果你想在 MVC 中创建/实现相同的东西,你可以自己手动创建控制器和视图。


推荐阅读