ASP.NET和EF Core - 對於由Scaffold-DbContext生成的模型,ModelState.IsValid始終返回true

asp.net-core-mvc entity-framework-core validation

我無法在ASP.NET核心控制器中驗證由Scaffold-DbContext命令生成的模型。

required / max length屬性配置都在EF核心生成的上下文類的onModelCreating方法中。

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

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

我的控制器接收模型的數據作為JSON但ModelState.IsValid總是返回true,即使我發送無效數據。

public IActionResult CreateModelClass( [FromBody]ModelClass modelClass ) {
    // ModelState.IsValid always returns true here

我將ModelState.IsValid設為false的唯一方法是將數據註釋添加到模型類中。我想避免這種情況,因為運行scaffold命令會覆蓋這些更改。

我在這裡錯過了什麼嗎?有人可以指點我的例子嗎?我見過的與驗證有關的都是使用數據註釋。

一般承認的答案

-DataAnnotations的註釋中所述,您可以使用Scaffold-DbContext命令中的-DataAnnotations開關生成具有正確驗證註釋的模型。

請參閱此處的Scaffold-DbContext文檔: httpsScaffold-DbContext



Related

許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow