为 ASP.NET MVC 身份创建身份用户页面

Posted

技术标签:

【中文标题】为 ASP.NET MVC 身份创建身份用户页面【英文标题】:Create an Identity User Page for ASP.NET MVC Identity 【发布时间】:2021-01-19 21:41:01 【问题描述】:

我实现了一个 ASP.NET MVC (.NET Framework) 身份,并且注册页面和登录身份验证页面如预期的那样自动生成。

我想为注册用户列表创建一个单独的页面,这就是我所做的。

    添加控制器 - MVC5 与 Vies 使用实体框架自动生成 CRUD 功能。

执行后,我收到此错误>视图模型中未定义键

所以我尝试像这样在模型中添加 Id 属性

public class RegisterViewModel
    
        [Key]
        public string Id  get; set; 

      .... 
   

但仍然得到同样的错误。

请指教

【问题讨论】:

这是错误的代码生成器,因为视图模型没有存储在数据库中,也不应该存储。 我同意@AluanHaddad 的观点,即您的“模型”不应命名为“视图模型”,请查看 MVVM 的工作原理。但是您当然可以随意调用您的模型,包括“viewmodel”,并且生成器应该仍然可以工作 【参考方案1】:

主键应该唯一标识一行。使用字符串作为主键并不常见。

如果确实有意义并且字符串是您的表的唯一唯一标识符,那么您必须让实体框架知道您的键不是标识列,因为它默认尝试将此属性应用于 [Key]列。

详细了解 T-SQL 中的 IDENTITYhttps://docs.microsoft.com/en-us/sql/t-sql/statements/create-table-transact-sql-identity-property?view=sql-server-ver15

[Key]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public string FooId  get; set; 

话虽如此,您可能应该选择integerGuid

【讨论】:

【参考方案2】:

您需要将属性 ID 从字符串更改为整数

【讨论】:

这是正确的,但并不完全正确。您可以将主键设为字符串。

以上是关于为 ASP.NET MVC 身份创建身份用户页面的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET MVC5 自定义身份验证

ASP.NET MVC 4 混合认证模式

具有个人用户帐户身份验证的 ASP.NET MVC 5 WEB API

如何在 ASP.NET MVC 5 中实现自定义身份验证

将 ASP.NET MVC5 身份验证添加到现有项目

ASP.NET MVC 内联网应用程序。基于角色的身份验证链接到应用程序中的用户表