The model validation of the ASP. Net. NET MVC, like ASP, uses System.ComponentModel.DataAnnotations.
Specifically, for example, there are:
[Required (errormessage= "")]
[Range (0, 999)]
[Bind (Exclude= "")]
[DisplayName ("")]
[Stringlength (1024)]
...
The validation extension can be seen here: http://dataannotationsextensions.org/
How is the model validated in the controller?
Usually through the modelstate.isvalid.
Public httpresponsemessage Post (product product) { if(modelstate.isvalid) { // returnnew httpresponsemessage (Httpstatuscode.ok); } Else { return request.createerrorresponse (httpstatuscode.badrequest, Modelstate ); }}
You can also customize the attribute Actionfilterattibute attribute of a model validation in a "tangent-oriented" manner.
Public class validatemodelattribute:actionfilterattibute{ publicoverride void OnActionExecuting (Httpactioncontext actioncontext) { iffalse) { = actionContext.Request.CreateErrorResponse (httpstatuscode.badrequest, Actioncontext.modelstate ); } }}
You then need to register the custom filter feature with the default filter set.
Public Static class webapiconfig{ publicstaticvoid Register (httpconfiguraiotn config) { config. Filters.add (new Validatemodelattribute ());} }
If the filter is not registered globally, we can also hit the filter feature to the controller or controller method.
[Validatemodel] Public httpresponsemessage Post (product product) {}
ASP. NET WEB API model validation and exception handling