using Microsoft.AspNetCore.Html; using System.Collections; namespace YLErp.Web { public static class HtmlExtensions { /// /// 序列化对象到htmlstring,处理了对象为null时的情况 /// public static IHtmlContent JsonSerialize(this IHtmlHelper helper, T value, bool ignoreNullValue = true, bool camelCase = false) { if (value == null) { var type = typeof(T); var untype = Nullable.GetUnderlyingType(type); if (untype != null) { type = untype; } if (type.IsValueType) { var val = Activator.CreateInstance(type); return new HtmlString(JsonHelper.ToJson(val)); } if (type.IsArray || typeof(IEnumerable).IsAssignableFrom(type)) { return new HtmlString("[]"); } return new HtmlString("{}"); } return new HtmlString(JsonHelper.ToJson(value, ignoreNullValue, camelCase)); } /// /// /// public static SelectListItem AsSelectListItem(this SelectItem selectItem) { return selectItem != null ? new SelectListItem { Disabled = selectItem.Disabled, Selected = selectItem.Selected, Text = selectItem.Text, Value = selectItem.Value } : null; } /// /// /// public static List AsSelectListItems(this IEnumerable selectItems) { return selectItems?.Select(n => new SelectListItem { Disabled = n.Disabled, Selected = n.Selected, Text = n.Text, Value = n.Value }).ToList(); } } }