public static MvcHtmlString Try<TModel, TProperty>(

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

    Expression<Func<TModel, TProperty>> expression//这里声明需要使用时传入表达式树

)

{

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

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

    builder.MergeAttribute("cols", "");//加入或修改属性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对象并返回

}

参考凌鸢的文章。

MVC 自定义 以表达式树为参数的htmlhelper的更多相关文章

  1. 表达式树动态拼接lambda

    动态拼接lambda表达式树   前言 最近在优化同事写的代码(我们的框架用的是dapperLambda),其中有一个这样很普通的场景——界面上提供了一些查询条件框供用户来进行过滤数据.由于dappe ...

  2. 动态拼接lambda表达式树

    前言 最近在优化同事写的代码(我们的框架用的是dapperLambda),其中有一个这样很普通的场景——界面上提供了一些查询条件框供用户来进行过滤数据.由于dapperLambda按条件查询时是传入表 ...

  3. 转载:C#特性-表达式树

    原文地址:http://www.cnblogs.com/tianfan/ 表达式树基础 刚接触LINQ的人往往觉得表达式树很不容易理解.通过这篇文章我希望大家看到它其实并不像想象中那么难.您只要有普通 ...

  4. 将简单的lambda表达式树转为对应的sqlwhere条件

    1.Lambda的介绍 园中已经有很多关于lambda的介绍了.简单来讲就是vs编译器给我带来的语法糖,本质来讲还是匿名函数.在开发中,lambda给我们带来了很多的简便.关于lambda的演变过程可 ...

  5. C# - LINQ 表达式树

    表达式树(Expression Tree) 表达式树是不可执行的代码,它只是用于表示一种树状的数据结构,树上的每一个节点都表示为某种表达式类型,大概有25种表达式类型,它们都派生自Expression ...

  6. C#特性-表达式树

    表达式树ExpressionTree   表达式树基础 转载需注明出处:http://www.cnblogs.com/tianfan/ 刚接触LINQ的人往往觉得表达式树很不容易理解.通过这篇文章我希 ...

  7. LINQ to Objects系列(4)表达式树

    为了进一步加深对Lambda表达式的理解,我们需要掌握一个新的知识,Lambda表达式树,可能听名字看起来很高深和难以理解,但实际上理解起来并没有想象中那么难,这篇文章我想分以下几点进行总结. 1,表 ...

  8. 表达式树(Expression Tree)

    你每创建一个表示表达式的实例时,都可以将该类型实例看成是一棵表达式树.每种表示表达式的类型都有一个具体的类型,如Expression的Variable()方法创建的是ParameterExpressi ...

  9. Linq系列(5)——表达式树之案例应用

    在进入今天的正题之前,先感慨下本人的blog的人气一篇不如一篇.再加上换公司后人身自由受到了比之前大得多得多的限制,实在令本人有些郁闷.不过每次提笔写些东西跟大家分享,总是能让我感到愉悦和欣慰,希望我 ...

随机推荐

  1. sublime text 2 php 语法错误检查

    使用sublime text 2 编写php程序的时候,保存代码的时候,直接检查出语法错误,有利于提高效率. 1.安装sublime text 2 package menu : preferences ...

  2. python自动化运维之路04

    装饰器 装饰器(decorator)是一种高级Python语法.装饰器可以对一个函数.方法或者类进行加工.在Python中,我们有多种方法对函数和类进行加工,比如在Python闭包中,我们见到函数对象 ...

  3. 【转载】Android Bug分析系列:第三方平台安装app启动后,home键回到桌面后点击app启动时会再次启动入口类bug的原因剖析

    前言 前些天,测试MM发现了一个比较奇怪的bug. 具体表现是: 1.将app包通过电脑QQ传送到手机QQ上面,点击安装,安装后选择打开app (此间的应用逻辑应该是要触发 [闪屏页Activity] ...

  4. 纪念第一次ak。。。

    1.MM的数学作业 [题目大意] 今天,MM在上数学课,数学课的主题是函数.讲完以后老师留了一个家庭作业,让同学们回家思考.题目如下: 定义一个函数,F(x)表示x转成二进制后,二进制中“1”的个数. ...

  5. sqlserver 2008评估期已过

    sqlserver 评估期已过 分类: SQL SERVER2012-08-22 17:04 977人阅读 评论(0) 收藏 举报 打开sqlserver出现提示:评估期已过.有关如何升级的测试版软件 ...

  6. DevExpress v18.1新版亮点——ASP.NET篇(一)

    用户界面套包DevExpress v18.1日前终于正式发布,本站将以连载的形式为大家介绍各版本新增内容.本文将介绍了DevExpress ASP.NET v18.1 的新功能,快来下载试用新版本!点 ...

  7. SharePoint Word Service-PowerShell

    1. 配置转换进程 Set-SPWordConversionServiceApplication –Identity "Word Automation Services" –Act ...

  8. require('nw.gui') 失效问题

    // gui = global.window.nwDispatcher.requireNwGui() --original // gui = window.require('nw.gui') gui ...

  9. 使用easyui将json数据生成数据表格

    1.首先需要用script引入jquery和easyui文件.如图所示: 2.html页面设置如下: data-options里面设置的属性可根据需要自己定义,是否单选,是否设置分页等等. 3.引入e ...

  10. Okhttp对http2的支持简单分析

    在< Okhttp之RealConnection建立链接简单分析>一文中简单的分析了RealConnection的connect方法的作用:打开一个TCP链接或者打开一个隧道链接,在打开t ...