() {
{ "class", className }
};
}
internal static string ObjectTemplate(HtmlHelper html) {
return ObjectTemplate(html, TemplateHelpers.TemplateHelper);
}
internal static string ObjectTemplate(HtmlHelper html, TemplateHelpers.TemplateHelperDelegate templateHelper) {
ViewDataDictionary viewData = html.ViewContext.ViewData;
TemplateInfo templateInfo = viewData.TemplateInfo;
ModelMetadata modelMetadata = viewData.ModelMetadata;
StringBuilder builder = new StringBuilder();
if (templateInfo.TemplateDepth > 1) { // DDB #224751
return modelMetadata.Model == null ? modelMetadata.NullDisplayText : modelMetadata.SimpleDisplayText;
}
foreach (ModelMetadata propertyMetadata in modelMetadata.Properties.Where(pm => ShouldShow(pm, templateInfo))) {
if (!propertyMetadata.HideSurroundingHtml) {
string label = LabelExtensions.LabelHelper(html, propertyMetadata, propertyMetadata.PropertyName).ToHtmlString();
if (!String.IsNullOrEmpty(label)) {
builder.AppendFormat(CultureInfo.InvariantCulture, "{0}
\r\n", label);
}
builder.Append("");
}
builder.Append(templateHelper(html, propertyMetadata, propertyMetadata.PropertyName, null /* templateName */, DataBoundControlMode.Edit, null /* additionalViewData */));
if (!propertyMetadata.HideSurroundingHtml) {
builder.Append(" ");
builder.Append(html.ValidationMessage(propertyMetadata.PropertyName));
builder.Append("
\r\n");
}
}
return builder.ToString();
}
internal static string PasswordTemplate(HtmlHelper html) {
return html.Password(String.Empty,
html.ViewContext.ViewData.TemplateInfo.FormattedModelValue,
CreateHtmlAttributes("text-box single-line password")).ToHtmlString();
}
private static bool ShouldShow(ModelMetadata metadata, TemplateInfo templateInfo) {
return
metadata.ShowForEdit
#if !MONO
&& metadata.ModelType != typeof(EntityState)
#endif
&& !metadata.IsComplexType
&& !templateInfo.Visited(metadata);
}
internal static string StringTemplate(HtmlHelper html) {
return html.TextBox(String.Empty,
html.ViewContext.ViewData.TemplateInfo.FormattedModelValue,
CreateHtmlAttributes("text-box single-line")).ToHtmlString();
}
internal static List TriStateValues(bool? value) {
return new List {
new SelectListItem { Text = MvcResources.Common_TriState_NotSet, Value = String.Empty, Selected = !value.HasValue },
new SelectListItem { Text = MvcResources.Common_TriState_True, Value = "true", Selected = value.HasValue && value.Value },
new SelectListItem { Text = MvcResources.Common_TriState_False, Value = "false", Selected = value.HasValue && !value.Value },
};
}
}
}