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();
}
}
}