title: Validation type names in unobtrusive client validation rules must be unique. The following validation type was seen more than once: required
body: <p>I created custom ASP.Net MVC model validation as the following:</p>
  
  <pre><code>internal class LocalizedRequiredAttribute : RequiredAttribute, IClientValidatable 
  {
      public List&lt;string&gt; DependentProperties { get; private set; }
      public List&lt;string&gt; DependentValues { get; private set; }
      public string Props { get; private set; }
      public string Vals { get; private set; }
      public string RequiredFieldValue { get; private set; }
  
      public LocalizedRequiredAttribute(string resourceId = "")
      {
          if (string.IsNullOrEmpty(resourceId))
              ErrorMessage = ResourcesHelper.GetMessageFromResource("RequiredValidationErrorMessage");
          else
              ErrorMessage = ResourcesHelper.GetMessageFromResource(resourceId);
      }
  
      public IEnumerable&lt;ModelClientValidationRule&gt; GetClientValidationRules(ModelMetadata metadata, ControllerContext context)
      {
          string msg = FormatErrorMessage(metadata.GetDisplayName());
          yield return new ModelClientValidationRequiredRule(msg); //Exception
      }
  }
  internal class LocalizedNumericRegularExpressionAttribute : RegularExpressionAttribute, IClientValidatable 
  {
      public LocalizedNumericRegularExpressionAttribute(string resourceId = "") : base(@"^\d+$")
      {
          if (string.IsNullOrEmpty(resourceId))
              ErrorMessage = ResourcesHelper.GetMessageFromResource("NumberRequiredValidationErrorMessage");
          else
              ErrorMessage = ResourcesHelper.GetMessageFromResource(resourceId);
      }
  
      public IEnumerable&lt;ModelClientValidationRule&gt; GetClientValidationRules(ModelMetadata metadata, ControllerContext context)
      {
          string msg = FormatErrorMessage(metadata.GetDisplayName());
          yield return new ModelClientValidationRequiredRule(msg); //Exception
      }
  }
  </code></pre>
  
  <p>the following is my Model:</p>
  
  <pre><code>public class MyModel
  {
     [LocalizedRequired]
     [LocalizedNumericRegularExpression]
     public int Emp_No { get; set; }
  }
  </code></pre>
  
  <p>Whenever I navigate to form with above Model, the following exception has occurred.</p>
  
  <pre><code>Validation type names in unobtrusive client validation rules must be unique. The following validation type was seen more than once: required
  </code></pre>
  
  <p>above codes are OK if I remove <code>IClientValidatable</code>, but the client validation doesn't work.</p>
  
  <p>What's wrong with my code?</p>