The first way is to validate each action individually.
//POST api/values Publichttpresponsemessage Post ([Frombody]userinfo UserInfo) {if(string. Isnullorwhitespace (Userinfo.gender)) {Modelstate.addmodelerror ("Gender","gender cannot be empty"); } if(modelstate.isvalid) {//Do something with the product (not shown). return Newhttpresponsemessage (Httpstatuscode.ok); } Else { returnrequest.createerrorresponse (Httpstatuscode.badrequest, modelstate); } } Public classUserInfo { Public intId {Get;Set; } [Required] [Stringlength ( -, errormessage ="The name's too long or too short.", Minimumlength =4)] Public stringName {Get;Set; } [RegularExpression (@"([2-5]\d)", errormessage ="age is between 20-50")] Public intAge {Get;Set; } Public stringGender {Get;Set; } }
The second is to do global validation:
Public class Validationattribute:actionfilterattribute { publicoverridevoid onactionexecuting (Httpactioncontext actioncontext) { if (! ActionContext.ModelState.IsValid) { = ActionContext.Request.CreateErrorResponse ( Httpstatuscode.badrequest, actioncontext.modelstate);}}} WebApiConfig.cs CONFIG. Filters.add (new Validationattribute ());
ASP. NET Web API data validation