use*_*875 5 validation entity-framework-core asp.net-core-mvc
我一直无法在我的 ASP.NET Core 控制器中验证由 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 );
Run Code Online (Sandbox Code Playgroud)
我的控制器以 JSON 格式接收模型数据,但即使我发送无效数据,ModelState.IsValid 也始终返回 true。
public IActionResult CreateModelClass( [FromBody]ModelClass modelClass ) {
// ModelState.IsValid always returns true here
Run Code Online (Sandbox Code Playgroud)
我让 ModelState.IsValid 为 false 的唯一方法是向模型类添加数据注释。我想避免这种情况,因为运行 scaffold 命令会覆盖这些更改。
我在这里错过了什么吗?有没有人可以指点我的例子?我见过的与验证相关的都是使用数据注释。
正如 @Smit 的评论中提到的,您可以使用命令--Data-Annotations中的开关Scaffold-DbContext来生成具有正确验证注释的模型。
请参阅此处的文档Scaffold-DbContext:https ://learn.microsoft.com/en-us/ef/core/miscellaneous/cli/powershell
| 归档时间: |
|
| 查看次数: |
843 次 |
| 最近记录: |