Valit
Valit is dead simple validation for .NET Core. No more if-statements all around your code. Write nice and clean fluent validators instead!
Install / Use
/learn @valit-stack/ValitREADME
Valit is dead simple validation for .NET Core. No more if-statements all around your code. Write nice and clean fluent validators instead!
| | master | develop |
|---|--------|----------|
|AppVeyor||
|
|Codecov|
|
|
Installation
Valit is available on NuGet.
Package manager
Install-Package Valit -Version 2.0.0
.NET CLI
dotnet add package Valit --version 2.0.0
Getting started
In order to create a validator you need to go through few steps. It's worth mentioning that not all of them are mandatory. The steps are:
- creating new instance of validator using
Create()static method. - choosing validation strategy using
WithStrategy()method (not required). - selecting property using
Ensure()method and defining rules for it. - Extending rules with custom errors (such as messages or error codes), tags and conditions. (not required).
- applying created rules to an object using
For()method.
Having the validator created, simply invoke Validate() method which will produce the result with all the data.
Let's try it out with very practical example. Imagine that your task is to validate model sent from registration page of your app. The example object might look as follows:
public class RegisterModel
{
public string Email { get; set; }
public string Password { get; set; }
public ushort Age { get; set ;}
}
These are the validation criteria:
Emailis required and needs to be a proper email addressPasswordis required and needs to be at least 10 characters longAgemust be greater than 16
This is how you can handle such scenario using Valit:
void ValidateModel(RegisterModel model)
{
var result = ValitRules<RegisterModel>
.Create()
.Ensure(m => m.Email, _=>_
.Required()
.Email())
.Ensure(m => m.Password, _=>_
.Required()
.MinLength(10))
.Ensure(m => m.Age, _=>_
.IsGreaterThan(16))
.For(model)
.Validate();
if(result.Succeeded)
{
// do something on success
}
else
{
// do something on failure
}
}
Pretty cool, right? Of course, the above example was fairly simple but trust us. From now on, even complicated validation criterias won't scare you anymore ;)
Documentation
If you're looking for documentation, you can find it here.
Contributing
Want to help us develop Valit? Awesome! Here you can find contributor guide ;)
Related Skills
node-connect
353.3kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
111.7kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
353.3kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
353.3kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
