private IHtmlContent RenderItemShow <TResult>(Expression <Func <TModel, TResult> > expression, bool inline, string dataType, object htmlAttributes) { if (expression == null) { return(new HtmlString("")); } var modelExplorer = GetModelExplorer(expression); var metadata = modelExplorer.Metadata; var name = GetExpressionName(expression); Type type = GetRealType(modelExplorer.ModelType); IHtmlContent content = null; var dataTypeName = string.IsNullOrEmpty(dataType) ? GetDataTypeName(type, metadata) : dataType.ToLower(); switch (dataTypeName) { case "text": content = RenderLable(modelExplorer, inline); break; case "hidden": content = new HtmlString(""); break; case "password": content = new HtmlString(""); break; case "switch": content = RenderSwitchShow(name, modelExplorer, metadata, inline, htmlAttributes); break; case "multilinetext": case "textarea": content = RenderTextareaShow(name, modelExplorer, metadata); break; case "enum_radio": content = RenderEnumRadioShow(modelExplorer, inline); break; case "datetime": case "date": case "year": case "month": case "time": content = RenderDateTimeShow(name, modelExplorer, metadata, inline); break; case "image": case "imageurl": content = RenderImageShow(name, modelExplorer, metadata); break; default: content = RenderLable(modelExplorer, inline); break; } return(content); }
/// <summary> /// 过滤Html代码,仅保留白名单中的标签与属性。 /// </summary> /// <param name="self"></param> /// <param name="Html">欲被过滤的Html代码</param> /// <returns></returns> public static HtmlString Sanitize(this IHtmlHelper self, HtmlString Html, object UserId = null) { return(self.Sanitize(Html.ToString(), UserId)); }