/// <summary> /// </summary> public static Microsoft.AspNetCore.Blazor.RenderFragment ValidationMessageFor <T, V>( this ModelStateDictionary <T> model, Expression <Func <T, V> > Field, object htmlAttributes = null, Rendering.ICustomValidationMessage customValidationMessage = null) { var property = PropertyHelper <T> .GetProperty(Field); var name = property.Name; return((builder) => { string errorDescription = model.GetValidationResults()? .Where(x => ((IEnumerable <string>)x.MemberNames).Contains(name)) .Select(x => x.ErrorMessage) .FirstOrDefault(); WriteMessage(customValidationMessage, builder, name, errorDescription, htmlAttributes); }); }
private static void WriteMessage(Rendering.ICustomValidationMessage customMessage, RenderTreeBuilder builder, string name, string errorDescription, object htmlAttributes = null) { if (string.IsNullOrEmpty(errorDescription) == false) { if (customMessage != null) { customMessage.WriteValidationMessage(builder, name, errorDescription, htmlAttributes); } else { int sequence = 1; builder.OpenElement(sequence++, "p"); builder.AddContent(sequence++, errorDescription); builder.WriteHtmlAttributes(ref sequence, htmlAttributes); builder.CloseElement(); } } }