Я сделал следующее, используя FluentValidator, если это кому-нибудь полезно, благодаря рекомендациям Дарина:
Public Class tProductValidator
Inherits AbstractValidator(Of tProduct)
Public Sub New()
Const RetailWholsaleError As String = "You need to enter either a Retail Price (final price to user) or a Wholesale Price (price sold to us), but not both."
Dim CustomValidation As System.Func(Of tProduct, ValidationFailure) =
Function(x)
If (x.RetailPrice Is Nothing AndAlso x.WholesalePrice Is Nothing) OrElse (x.RetailPrice IsNot Nothing AndAlso x.WholesalePrice IsNot Nothing) Then
Return New ValidationFailure("RetailPrice", RetailWholsaleError)
End If
Return Nothing
End Function
Custom(CustomValidation)
End Sub
End Class
как обычно, я был одурачен, полагая, что MVC - это полноценная среда, в которой возможны сценарии реального мира. как же они публикуют такие вещи и даже не упоминают об их ограничениях, я не понимаю, мы, разработчики, затем сталкиваемся с проблемами, которые являются кошмаром, или нам приходится полагаться на сторонние материалы, чтобы выполнить то, что по своей сути является обязанностью MVC, а если сторонние предметы не были доступны - тогда что?
это не первое серьезное отступление, которое я обнаружил в mvc 2.0, список продолжает расти.
уверен, что команда продолжает приводить эти «классные» примеры того, как простые вещи используют воображаемые примеры не-реального мира, и когда дело доходит до реальных вещей, это похоже на «черт, нам это не важно, и мы не будем рассказывать вам о них». это, вам просто нужно наткнуться на это и разобраться с этим самостоятельно "тип сделки
о, и обновление нескольких частей представления в одном цикле все еще невозможно, если вы не воспользуетесь хаком js, не разрежете HTML-код возврата и не назначите его разным элементам div ... вы даже не сможете вернуть несколько представлений или обновить хотя бы несколько областей страницы (за один раз), это просто печально.
Может быть, когда MVC достигнет версии 3.0, она может быть фактически завершена, скрестив пальцы, так как структура dotnet не была реалистично «завершена» до версии 3.5, включая linq / EF to SQL ...