public FormVm(FfHtmlHelper html, MethodInfo mi) : this(html) { this._actionName = mi.Name; var controllerTypeName = mi.ReflectedType.Name; this._controllerName = controllerTypeName.Substring(0, controllerTypeName.LastIndexOf("Controller")); HtmlHelper = html; var inputs = new List <PropertyVm>(); foreach (var pi in mi.GetParameters()) { if (pi.GetCustomAttributes(true).Any(x => x is FormModelAttribute)) { inputs.AddRange(pi.ParameterType.GetProperties() .Select(pi2 => new PropertyVm(pi, pi2).Then(p => p.Name = pi.Name + "." + p.Name))); } else { inputs.Add(new PropertyVm(pi)); } } Inputs = inputs; this.DisplayName = mi.Name.Sentencise(true); ExcludePropertyErrorsFromValidationSummary = true; }
public FormVm(FfHtmlHelper html) { Inputs = new List <PropertyVm>(); this.DisplayName = ""; this.HtmlHelper = html; ShowValidationSummary = true; ExcludePropertyErrorsFromValidationSummary = true; RenderAntiForgeryToken = Defaults.RenderAntiForgeryToken; }
public static string AllValidationMessages(this FfHtmlHelper helper, string modelName) { if (HasErrors(helper, modelName)) { var message = string.Join(", ", helper.ViewData.ModelState[modelName].Errors.Select(e => e.ErrorMessage)); return(message); } return(""); }
public static string UnobtrusiveValidation(FfHtmlHelper helper, PropertyVm property) { var sb = new StringBuilder(); var rules = UnobtrusiveValidationRules.SelectMany(r => r(property)); if (rules.Any() == false) { return(""); } sb.Append("data-val=\"true\" "); foreach (var rule in rules) { var prefix = string.Format(" data-val-{0}", rule.ValidationType); sb.AppendFormat(prefix + "=\"{0}\" ", rule.ErrorMessage); foreach (var parameter in rule.ValidationParameters) { sb.AppendFormat(prefix + "-{0}=\"{1}\" ", parameter.Key, parameter.Value); } } return(sb.ToString()); }
public static bool HasErrors(this FfHtmlHelper helper, string modelName) { return(helper.ViewData.ModelState.ContainsKey(modelName) && helper.ViewData.ModelState[modelName].Errors.Any()); }
public static string UnobtrusiveValidation(FfHtmlHelper helper, PropertyVm property) { var sb = new StringBuilder(); var rules = UnobtrusiveValidationRules.SelectMany(r => r(property)); if (rules.Any() == false) return (""); sb.Append("data-val=\"true\" "); foreach (var rule in rules) { var prefix = string.Format(" data-val-{0}", rule.ValidationType); sb.AppendFormat(prefix + "=\"{0}\" ", rule.ErrorMessage); foreach (var parameter in rule.ValidationParameters) { sb.AppendFormat(prefix + "-{0}=\"{1}\" ", parameter.Key, parameter.Value); } } return (sb.ToString()); }
public FormRenderScope(FfHtmlHelper htmlHelper, FormVm formVm) { HtmlHelper = htmlHelper; FormVm = formVm; }