如果我的ApiController
有一个post方法,它使用的模型有数据注释用于验证,我该如何自定义为验证错误显示的名称?我真的不想覆盖整个错误消息,但我确实需要错误中的属性不是模型类型上属性的名称。
我尝试过像DisplayNameAttribute和DisplayAttribute这样的东西,但那些似乎不适用于此。
答案 0 :(得分:1)
我找到的最佳解决方案基于以下内容: https://gist.github.com/benfoster/4016852
您必须创建自己的验证器提供程序(如链接中所示)和您自己的验证程序,它将使用正确的displayName设置ValidationContext
,以便
validationContext.DisplayName = displayNameMappingFunction(metadata.GetDisplayName());
然后,您需要使用GlobalConfiguration.Services全局注册验证器提供程序,或者您需要创建一个IControllerConfigurationAttribute
,它将仅为一个控制器配置它。
你做config.Services.Replace(typeof(ModelValidatorProvider), new CustomDisplayNameProvider()