c# - The RegularExpression data annotation is not being recongnized by the Validator -
i believe code pretty self-explanatory.  why isn't regularexpression attribute being used validator?
license.cs:
public class license {   [required]   [regularexpression("([0-9a-f]{4}\\-){4}[0-9a-f]{4}")]   public string code { get; set; } }   licensetest.cs
[testmethod] public void testvalidationofcodeproperty() {     // these tests pass know regex not issue     assert.istrue(regex.ismatch("abcd-ef01-2345-6789-ffff", "([0-9a-f]{4}\\-){4}[0-9a-f]{4}"));     assert.isfalse(regex.ismatch("abcd-ef01-2345-6789-ff00", "([0-9a-f]{4}\\-){4}[0-9a-f]{4}"));     assert.isfalse(regex.ismatch("3331313336323034313135302020202020212121", "([0-9a-f]{4}\\-){4}[0-9a-f]{4}"));      // setup validator     license lic = new license();     var ctx = new validationcontext(lic);     var results = new list<validationresult>();      // passes - tryvalidateobject returns false because required field empty     lic.code = "";     assert.isfalse(validator.tryvalidateobject(lic, ctx, results));      // passes - tryvalidateobject returns true     lic.code = "10d0-4439-0002-9ed9-0743";     assert.istrue(validator.tryvalidateobject(lic, ctx, results));      // fails - tryvalidateobject returns true     lic.code = "3331313336323034313135302020202020212121";     assert.isfalse(validator.tryvalidateobject(lic, ctx, results)); }            
use validator.tryvalidateobject(lic, ctx, results, true)
msdn explains last argument: https://msdn.microsoft.com/en-us/library/dd411772(v=vs.110).aspx
true validate properties; if false, required attributes validated
Comments
Post a Comment