asp.Net   发布时间:2022-04-07  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了asp.net-mvc-3 – 不明显的客户端验证规则中的验证类型名称必须是唯一的大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_874_1@

这是指EmailAddress属性,这里:

public class LoginModel
{
    [required]
    [DataType(DataType.EmailAddress)]
    [Display(Name = "Email")]
    [AdditionalMetadata("Style","Wide")]
    public String EmailAddress { get; set; }

    [required]
    [DataType(DataType.password)]
    [Display(Name = "password")]
    [AdditionalMetadata("Style","Wide")]
    public String password { get; set; }
}

我在这里没有使用相同类型的验证规则。这在本地工作正常,但在部署到服务器时不起作用。这是怎么回事?

我添加了对DataAnnotationExtensions(http://dataannotationsextensions.org)的引用,是否会引起问题?

编辑:删除引用没有解决问题。 IIS配置似乎有些混乱吗?

解决方法

JimmiTh’s comment的这个问题提供了一个关键的见解,为我解决这个问题。

在我的情况下,我绝对添加了一个额外的提供者ModelValidatorProviders。我在Global.asax.cs文件中添加了一个使用此代码的自定义验证工厂(使用Fluent Validation):

@H_189_4@modelValidatorProviders.Providers.Add( new FluentValidationModelValidatorProvider(validatorFactory));

但是使用多个提供商并不一定有问题。似乎有问题的是,如果多个提供程序提供相同的验证器,因为它将多次注册相同的规则,导致Microsoft提供的不显眼的验证码的问题。

我最后从同一个文件中删除以下行,因为我决定不需要使用这两个提供程序:

FluentValidationModelValidatorProvider.Configure();

上面的Configure方法本身是将ModelValidatorProviders的提供程序添加到一起,并且我正在有效地将相同的验证器类注册两次,因此有关非唯一的“验证类型名称”的错误。

另一种使用多个提供商的问题jquery – Fluent Validations. Error: Validation type names in unobtrusive client validation rules must be unique的问题可能导致上述问题。每个提供者都可以配置为将“隐含的必需属性”添加到“值类型”(即查看不可为空的模型属性)。为了解决这个特殊的问题,我可以将我的代码改成以下内容,以便所有的提供者都不会添加隐式的必需属性:

FluentValidationModelValidatorProvider.Configure(
    provider => provider.AddImplicitrequiredValidator = falsE);


DependencyResolverValidatorFactory validatorFactory =
    new DependencyResolverValidatorFactory();

FluentValidationModelValidatorProvider validatorFactoryProvider =
    new FluentValidationModelValidatorProvider(validatorFactory);

validatorFactoryProvider.AddImplicitrequiredValidator = false;
ModelValidatorProviders.Providers.Add(validatorFactoryProvider);


DataAnnotationsModelValidatorProvider.AddImplicitrequiredAttributeForValueTypes = false;

大佬总结

以上是大佬教程为你收集整理的asp.net-mvc-3 – 不明显的客户端验证规则中的验证类型名称必须是唯一的全部内容,希望文章能够帮你解决asp.net-mvc-3 – 不明显的客户端验证规则中的验证类型名称必须是唯一的所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。