/// <summary> /// Generates template based select field based on reflected modeled table field attributes with values derived from ValueList table. /// </summary> /// <typeparam name="T">Modeled table for select field.</typeparam> /// <param name="groupName">Value list group name as defined in ValueListGroup table.</param> /// <param name="fieldName">Field name for value of select field.</param> /// <param name="fieldLabel">Label name for select field, pulls from <see cref="LabelAttribute"/> if defined, otherwise defaults to <paramref name="fieldName"/>.</param> /// <param name="fieldID">ID to use for select field; defaults to select + <paramref name="fieldName"/>.</param> /// <param name="groupDataBinding">Data-bind operations to apply to outer form-group div, if any.</param> /// <param name="labelDataBinding">Data-bind operations to apply to label, if any.</param> /// <param name="customDataBinding">Extra custom data-binding operations to apply to field, if any.</param> /// <param name="dependencyFieldName">Defines default "enabled" subordinate data-bindings based a single boolean field, e.g., a check-box.</param> /// <param name="optionDataBinding">Data-bind operations to apply to each option value, if any.</param> /// <param name="toolTip">Tool tip text to apply to field, if any.</param> /// <returns>Generated HTML for new text field based on modeled table field attributes.</returns> public static string AddDirectoryBrowser(string fieldName, bool required, int maxLength = 0, string inputType = null, string fieldLabel = null, string fieldID = null, string groupDataBinding = null, string labelDataBinding = null, string requiredDataBinding = null, string customDataBinding = null, string dependencyFieldName = null, string toolTip = null) { IRazorEngine m_razorEngine = RazorEngine <CSharpEmbeddedResource> .Default; RazorView addInputFieldTemplate = new RazorView(m_razorEngine, $"DirectoryBrowser.cshtml", null); DynamicViewBag viewBag = addInputFieldTemplate.ViewBag; if (string.IsNullOrEmpty(fieldID)) { fieldID = $"input{fieldName}"; } viewBag.AddValue("FieldName", fieldName); viewBag.AddValue("Required", required); viewBag.AddValue("MaxLength", maxLength); viewBag.AddValue("InputType", inputType ?? "text"); viewBag.AddValue("FieldLabel", fieldLabel ?? fieldName); viewBag.AddValue("FieldID", fieldID); viewBag.AddValue("GroupDataBinding", groupDataBinding); viewBag.AddValue("LabelDataBinding", labelDataBinding); viewBag.AddValue("RequiredDataBinding", requiredDataBinding); viewBag.AddValue("CustomDataBinding", customDataBinding); viewBag.AddValue("DependencyFieldName", dependencyFieldName); viewBag.AddValue("ToolTip", toolTip); return(addInputFieldTemplate.Execute()); }