MVC 自定义 以表达式树为参数的htmlhelper

public static MvcHtmlString Try(

    this HtmlHelper htmlHelper, //声明这个方法Try是扩展函数,用来扩展HtmlHelper

    Expression> expression//这里声明需要使用时传入表达式树

)

{

    var builder = new TagBuilder("textarea");//建立一个TagBuidlder对象,标签名是textarea

    builder.AddCssClass("ckeditor");//加入一个ckeditor的css类

    builder.MergeAttribute("cols", "80");//加入或修改属性cols为80

    builder.MergeAttribute("name", "editor1");

    builder.MergeAttribute("id", expression.Name); // 加入或修改id属性为表达式树的Name

    var value = ModelMetadata.FromLambdaExpression(

        expression, htmlHelper.ViewData

    ).Model;//通过表达式树从元数据中获取具体对象

    builder.SetInnerText(value.ToString());// 设置内部文本

    return MvcHtmlString.Create(builder.ToString());//将builder对象转换MvcHtmlString对象并返回

}


参考凌鸢的文章。

转载于:https://www.cnblogs.com/fej121/p/3987431.html

你可能感兴趣的:(MVC 自定义 以表达式树为参数的htmlhelper)