为 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;
话虽如此,您可能应该选择integer
或Guid
【讨论】:
【参考方案2】:您需要将属性 ID 从字符串更改为整数
【讨论】:
这是正确的,但并不完全正确。您可以将主键设为字符串。以上是关于为 ASP.NET MVC 身份创建身份用户页面的主要内容,如果未能解决你的问题,请参考以下文章