• ASP.NET MVC 之自定义HtmlHelper


    前言

        HtmlHelper方法为我们提供很多html标签,只需在页面调用就行了,但是微软并没有把所有的html标签都对应有了扩展方法,需要我们重新自定义HtmlHelper,来满足我们需要。

    方法

     如下例代码:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.Mvc;
    namespace TestMvcHelper
    {
        public static class HtmlExtensions
        {
            public static MvcHtmlString Submit(this HtmlHelper helper, string value)
            {
                var builder = new TagBuilder("input"); //使我们创建的标签名字设为input
                builder.MergeAttribute("type", "submit");  //添加属性 type="submit"
                builder.MergeAttribute("value", value);
                return MvcHtmlString.Create(builder.ToString(TagRenderMode.SelfClosing)); 
            }
        }
    }

    上面代码解读:

    • 在使用TagBuilder需要引入命名空间System.Web.Mvc。
    • Submit方法名是对应视图中调用的名称。    (如:@Html.Submit("提交") )
    • this HtmlHelper helper 将Submit方法添加到HtmlHelper中,value是传过来的提交按钮上的文字。
    • var builder = new TagBuilder("input");      设置标签名字设为input。
    • builder.MergeAttribute("type", "submit")   设置标签属性type="submit"。
    • builder.MergeAttribute("value", value);      设置标签提交按钮Value值。
    • TagRenderMode.SelfClosing                     表示用于呈现自结束标记(例如,<input />)的模式。
    • TagRenderMode是个枚举类,分别为   Normal(表示用于呈现正常文本的模式)、StartTag(表示用于呈现开始标记(例如,<tag>)的模式)、 EndTag(表示用于呈现结束标记(例如,</tag>)的模式)、 SelfClosing(表示用于呈现自结束标记(例如,<tag />)的模式)。
    • MvcHtmlString作为返回值是为了使返回值不被转义,比如"<"不会被转成"&lt"。

    View中写入下面代码调用

    @Html.Submit("提交")

    生成效果预览

    <input type="submit" value="提交" />

    本篇到此结束。HtmlHelper包含的东西比较多,还有一些东西没有介绍,有时间我会继续学习,如果大家有兴趣我可以继续拓展。欢迎讨论。喜欢的话就推荐一下吧!

  • 相关阅读:
    在tableViewCell上添加button导致按钮没有点击效果和不能滑动
    jquery添加自定义校验
    json转化对特殊字段的处理
    模仿spring authentication-provider 自己写登录人管理
    hibernate自动建表
    java 上传文件
    java实现赋值excel模板,并在新文件中写入数据,并且下载
    实现图片预览
    ajax+jquery实现父页面弹出子页面,选择提交后给父页面传值
    上传附件,压缩并加密
  • 原文地址:https://www.cnblogs.com/liujie2272/p/5344605.html
Copyright © 2020-2023  润新知