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" />

 

 
 
 

 

转载于:https://www.cnblogs.com/Leon-Hu/p/5960988.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值