if (HasValidationError(model)) { Flash["summary"] = GetErrorSummary(model); RedirectToReferrer(); return; }
But I found that I was still getting an invalid object when the object was being saved, or in other words: the HasValidationError method wasn't catching invalid objects. I have beating my head against the wall many a time until today when I realized something - the ValidateIsUnique attribute comes from Castle.Activerecord and NOT from Castle.Components.Validator. Sure enough, I realized that any problems I had with HasValidationError not catching an invalid object came when I used ValidateIsUnique.
So after digging through some code for a couple of hours, I haven't quite found a solution that I like. I may post on Castle Project mailing list to see if I get some answers there. As of right now I believe the only way to really validate and catch this attribute if the validation failed is to include a separate catch block after the HasValidationError block:
if (!model.IsValid()) { ActiveRecordMediator.Evict(model); Flash["message"] = String.Join(",", model.ValidationErrorMessages); RedirectToReferrer(); return; }
No comments:
Post a Comment