Context: creating a jsonP service with mvc controller methods which provides a definition of formfields including all validation rules.
My problem is that I do not know how to serialize the validation attributes. I prefer the validation attributes in the same format as they are serialized by Razor when using unobtrusive validation in regular Mvc views.
For serializing to json I use NewtonSoft.Json (4.0.2).
Example of model:
public class Profile{
[Required(ErrorMessage="This field is required.")]
[StringLength(25, ErrorMessage="Max 25 chars.")]
public string Firstname{get;set;}
}
Example of preferred serialized javascript:
{"Firstname": "John",
"ValidationRules":[{"data-val-required":"This field is required.", "data-val-length-max":25, "data-val-length":"Max 25 chars." }]}
Any help or pointers are very much appreciated.
This will construct a dictionary with the validation attributes for a given property based on the data annotation attributes:
You should then serialize the validationAttributes dictionary with your property in your custom JSON serialization code.