FluentValidation kullanırken Etki Alanı Modeli Doğrulama Hataları ViewModel'e eşleme

Buradaki insanların bana bunu nasıl yapacağına dair bazı fikirler vermesini umuyorum.

Şu anda ekranımı oluşturmak için kullandığım bir ViewModel var. Görünüm modeli aslında çeşitli etki alanı modellerinin düzleştirilmiş verilerini içerir. ViewModel'i temel doğrulamayı yapmak için özniteliklerle donattım, ancak gerçek doğrulama çalışması hizmet katmanında gerçekleşiyor. Hizmet katmanında bir doğrulama hatası olduğunda sorun oluşur. Özelliğin adı (yani - KullanıcıAdı) ModelState'deki (yani RegistrationViewModel.UserName) girdiyle eşleşmiyor.

Bunun nasıl halledileceğine dair bir tavsiyesi var mı?

Şimdiden teşekkürler!

Steven

1

2 cevap

Belki de sorunuza bir cevap değil, ama genellikle buna şöyle yaklaşırım:

Etki alanı modelinde herhangi bir doğrulama çerçevesi kullanmıyorum ve kullanıcı dostu hata iletileri vermek için kullanmıyorum. Her zaman modelin geçerli durumda olduğundan emin olurum. Geçersiz bir değer ayarlandığında (özellik ayarlayıcılarda) bir istisna atarım. Ben varsayılan değerler ve yapıcı parametreleri kullanarak, her zaman geçerli durumda bunları almak için etki alanı nesneleri kurucular kullanın. Gerçek basit ama güçlü, çünkü her zaman modelinizin geçerli bir durumda olduğundan emin olabilirsiniz. Etki alanı nesnelerini kesinlikle emin olmak için test etmelisiniz. Bu yaklaşım, orm'larla da harika çalışıyor.

Bu yüzden kullanıcı dostu mesajlar vermek için yalnızca görüntüleme modelinde akıcı doğrulama kullanın.

1
katma
Bu yaklaşımla ilgili problem, daha iyi bir mesaj alabilmem için kullanıcı doğrulama iş mantığım mantığını (karmaşık kurallar vs. gibi basit bir alanın türünü gerektirir) taşımamdır. Bunun iyi bir yaklaşım olduğuna inanmıyorum.
katma yazar Steven, kaynak

Bu en büyük çözüm değil, ancak temel alan geçerliliklerini göstermek için temel istemci tarafı doğrulamaya güveniyorum, geçmişte alınan ve geçerlilik özetinde sunulan hizmette onaylanan her şey.

0
katma