ModelState
ModelState is an ASP.NET Core representation of request model-binding and validation state, including bound values and associated errors.
ASP.NET Core in Action, 3e
ModelState is the ASP.NET Core request-state dictionary that stores bound values and validation errors associated with properties or the model.
- How it is used
- Uses ModelState.IsValid to decide whether bound input can proceed to business logic or needs a validation response.
- How deep it goes
- Defines ModelState as a ModelStateDictionary of validation results and works through response handling, filters, and unit tests without exploring its internals.
- Examples
- Shows a checkout form redisplayed after validation failure, an API action filter returning Bad Request, and a controller test adding an error.
- What you can do after
- Apply it via ModelState.IsValid to handle invalid submissions, and diagnose/debug with it by adding errors in controller unit tests.
Pro ASP.NET Core 7, Tenth Edition
ModelStateDictionary is the ASP.NET Core MVC collection that stores bound model values and validation errors for request fields and properties.
- How it is used
- Gates use of bound request objects and carries errors to MVC views or web API responses.
- How deep it goes
- Defines ModelStateDictionary and its principal members, then works through implicit checks, explicit property rules, and controller tests.
- Examples
- Uses an RSVP form, empty-cart checkout tests, positive-price checks, and a product API returning validation errors.
- What you can do after
- Apply it via ASP.NET Core MVC to reject invalid submissions, add rule-specific errors, and return errors through views or API responses.
Read how Pro ASP.NET Core 7, Tenth Edition explains ModelState →
Building Web APIs with ASP.NET Core
ModelState is the ASP.NET Core representation of model-binding and validation state, including associated errors for an HTTP request.
- How it is used
- Coordinates model-binding and validation outcomes before ASP.NET Core API actions process HTTP requests.
- How deep it goes
- Explains the binding-validation lifecycle and manual configuration, but defers the internal structure of ModelState entries.
- Examples
- Uses custom validation messages, pageSize-specific HTTP 501 handling, and conditional HTTP 403 or HTTP 400 responses.
- What you can do after
- Diagnose invalid request input automatically or configure manual inspection for customized validation responses.
Read how Building Web APIs with ASP.NET Core explains ModelState →
Related concepts
- validation summaryused by · A validation summary is a UI component that displays collected validation error messages for multiple fields or controls in a form.
- manual model validationused by · Manual model validation is the explicit inspection of bound request data and validation errors within application code before producing a response.
- ModelState.AddModelErrorused by · ModelState.AddModelError is an ASP.NET Core MVC operation that adds a validation error associated with a model key or field.
- validationproduced by · The process of checking data, behavior, systems, models, or results against defined criteria to assess their correctness, suitability, or acceptability.
These guides are generated from the text of Manning books by Manning's knowledge graph and link to the sections they draw on. The full books are available on liveBook and at manning.com.


