public static MvcHtmlString ProgressBar(this HtmlHelper helper, double value, ProgressBarOptions options) { TagBuilder progress = new TagBuilder("div"); TagBuilder bar = new TagBuilder("div"); if (options == null) { options = new ProgressBarOptions(); } bar.AddCssClass("progress-bar"); if (options.Color != BootstrapColor.None) { bar.AddCssClass("bg-" + BootstrapHelper.GetColorName(options.Color)); } if (options.Striped || options.Animated) { bar.AddCssClass("progress-bar-striped"); } if (options.Animated) { bar.AddCssClass("progress-bar-animated"); } bar.Attributes.Add("role", "progressbar"); bar.Attributes.Add("aria-valuemin", "0"); bar.Attributes.Add("aria-valuemax", "100"); bar.Attributes.Add("aria-valuenow", value.ToString("p1")); bar.AddInlineStyle("width", value.ToString("p1")); if (options.ShowLabel) { string label = string.Format(options.LabelFormatString ?? DefaultLabelFormatString, value); bar.SetInnerText(label); bar.AddInlineStyle("min-width", (label.Length + 1) + "em"); } progress.AddCssClass("progress"); progress.InnerHtml = bar.ToString(); return(new MvcHtmlString(progress.ToString())); }