• MVC 中 使用TagBuilder扩展HtmlHelper


    TagBuilder就是标签建造器,我们就用它来建造属于我们自己标签生成函数。

    无废话,直接上代码

    例:

    using System.Web.Mvc;
    public static class HtmlExtensions
    {
        /// <summary>
        /// 自定义一个@html.Submit()
        /// </summary>
        /// <param name="helper"></param>
        /// <param name="value">value属性</param>
        /// <returns></returns>
        public static MvcHtmlString Submit(this HtmlHelper helper, string value)
        {
            var builder = new TagBuilder("input");
            builder.MergeAttribute("type", "submit");
            builder.MergeAttribute("value", value);        
            return MvcHtmlString.Create(builder.ToString(TagRenderMode.SelfClosing)); 
      }
    }

    我们来解读一下上面的代码:

    • 首先,要用TagBuilder就要引入System.Web.Mvc类库。
    • 接着我们看这个函数的参数,this HtmlHelper helper保证这个方法会被添加到HtmlHelper中,string value对应将来的提交按钮显示的文字,也就是value属性。
    • var builder = new TagBuilder("input");使我们创建的标签名字设为input。
    • MergeAttribute函数给创建出的元素添加属性,如MergeAttribute("type", "submit") 就是加入 type="submit" 属性。
    • TagRenderMode.SelfClosing使生成的标签自我关闭,也就是说有<input />这种形式。
    • 最后用MvcHtmlString作为返回值是为了使返回值不被转义,比如"<"不会被转成"&lt"。这是我们不想看到的。

    然后我们在View中写入下面代码调用刚才写好的函数:

    @Html.Submit("SubmitButton")

    生成HTML结果如下:

    <input type="submit" value="SubmitButton" />
    
    
     
  • 相关阅读:
    占位
    提高班整风带给我的思考
    Servlet笔记
    CommandArgument传多个值
    asp.net中怎么判断request的一个值是否为空
    asp.net中cookie中文乱码的解决
    datatable的手工构造过程
    .net c#日期时间函数大全
    【转载】[.net程序员面试题]
    javascript自动生成表格行
  • 原文地址:https://www.cnblogs.com/Leon-Hu/p/5960988.html
Copyright © 2020-2023  润新知