gpt4 book ai didi

validation - ASP.NET 和 EF Core - ModelState.IsValid 对于 Scaffold-DbContext 生成的模型始终返回 true

转载 作者:行者123 更新时间:2023-12-03 10:03:26 24 4
gpt4 key购买 nike

我一直无法在我的 ASP.NET Core Controller 中验证由 Scaffold-DbContext 命令生成的模型。

required/max length属性配置都在EF核心生成的context类的onModelCreating方法中。

protected override void OnModelCreating( ModelBuilder modelBuilder ) {
modelBuilder.Entity<ModelClass>( entity => {
entity.ToTable( "ModelClass", "schema" );

entity.Property( e => e.ModelClassCode )
.IsRequired()
.HasMaxLength( 30 );

我的 Controller 以 JSON 格式接收模型数据,但即使我发送无效数据,ModelState.IsValid 也始终返回 true。
public IActionResult CreateModelClass( [FromBody]ModelClass modelClass ) {
// ModelState.IsValid always returns true here

我让 ModelState.IsValid 为 false 的唯一方法是向模型类添加数据注释。我想避免这种情况,因为运行 scaffold 命令将覆盖这些更改。

我在这里错过了什么吗?有人可以指出我的例子吗?我见过的与验证相关的都是使用数据注释。

最佳答案

正如@Smit 的评论中所述,您可以使用 -DataAnnotationsScaffold-DbContext 中切换命令以生成具有正确验证注释的模型。

请参阅 Scaffold-DbContext 的文档这里:https://docs.microsoft.com/en-us/ef/core/miscellaneous/cli/powershell

关于validation - ASP.NET 和 EF Core - ModelState.IsValid 对于 Scaffold-DbContext 生成的模型始终返回 true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41093419/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com