/// <summary> /// Gets the collection of client validation rules, /// which are applied to the property of the /// model, accessed through the specified <paramref name="expression"/>. /// </summary> /// <param name="modelName">Specifies the name of the model, /// which will prefix the validation rule member name.</param> /// <param name="expression">A string expression to access the /// model property.</param> public FormValidationMetadata Rules(string modelName, string expression) { TemplateDescriptor descriptor = new TemplateDescriptor( Context.ViewData.Template.Type) { Prefix = modelName }; descriptor.Prefix = descriptor.GetHtmlElementName(expression); return new FormValidationMetadata( CreateClientRules(GetRulesInternal(expression)) .Each(r => { r.Field = CreateFieldName(descriptor, expression, r.Field); })); }
protected static string CreateFieldName(TemplateDescriptor descriptor, string expression, string member) { return (String.Equals(expression, member, StringComparison.OrdinalIgnoreCase)) ? descriptor.Prefix : descriptor.GetHtmlElementName(member); }