Asp.net core 未对已发布的操作参数进行模型验证
为什么ASP.NET核心不验证属性化操作参数?在下面的示例中,Asp.net core 未对已发布的操作参数进行模型验证,asp.net-core,asp.net-core-mvc,model-validation,Asp.net Core,Asp.net Core Mvc,Model Validation,为什么ASP.NET核心不验证属性化操作参数?在下面的示例中,SomeClass类型的参数value未得到验证。它甚至没有出现在ModelState字典中(只有id)this.ModelState.IsValid始终为true,即使Name属性设置为长度超过2个字母的字符串 即使是TryValidateModel也始终是true,无论请求主体包含什么(JSON) 及 您需要注册MVC数据注释。当您使用lightAddMvcCore方法而不是AddMvc时,默认情况下不会添加它。修改您的Conf
SomeClass
类型的参数value
未得到验证。它甚至没有出现在ModelState字典中(只有id
)this.ModelState.IsValid
始终为true
,即使Name属性设置为长度超过2个字母的字符串
即使是TryValidateModel
也始终是true
,无论请求主体包含什么(JSON)
及
您需要注册MVC数据注释。当您使用light
AddMvcCore
方法而不是AddMvc
时,默认情况下不会添加它。修改您的ConfigureServices
方法:
services
.AddMvcCore()
.AddJsonFormatters()
.AddDataAnnotations(); // add this line
您需要注册MVC数据注释。当您使用light
AddMvcCore
方法而不是AddMvc
时,默认情况下不会添加它。修改您的ConfigureServices
方法:
services
.AddMvcCore()
.AddJsonFormatters()
.AddDataAnnotations(); // add this line
services
.AddMvcCore()
.AddJsonFormatters()
.AddDataAnnotations(); // add this line