I prefer Fluent Validation:
- It gives me far better control of my validation rules
- Doing conditional validation on different properties is so much easier compared to Data Annotations
- It separates the validation from my view models
- Unit testing is far easier compared to Data Annotations
- It has excellent client side validation support for most standard validation rules