• HtmlHelper总结


      HTML helper是在视图页面上操作HTML元素时可以调用的方法,还包括URL helper和AJAX helper。这些帮助方法都为了使得操作HTML更加容易。分为两类:a.编辑和输入帮助类b.显示和渲染帮助类。

    1实质

       Razor视图继承了基类的HTML属性。HTML属性的类型是HtmlHelper<T>,T代表了传递给视图的模型类型。大多是的辅助方法都是扩展方法。

    2自动实现HTML编码

        如@Html.TextArea("text", "hello <br/> world") 对应的HTML代码

           <textarea cols="20" id="text" name="text" rows="2">hello &lt;br /&gt; world</textarea>

    3几乎所有的helper方法都可以添加一个控制HTML属性的参数

       参数类型是IDictionary<string,object>,用来创建HTML控件的属性,在需要的情况下可以创建许多的属性。如:@using (Html.BeginForm("Search", "Home", FormMethod.Get, new { target = "_blank" })){}

    但是需要注意的是:1)当设置css class=""时 由于class是关键字需要 写作@class=""

                     2)当属性名字中含"-"时,由于c#中命名不能含有"-",所以要写成"_",帮助方法可以自动转换

    4 Html.ValidationSummary

        汇总显示ModelState Dictionary中的信息。通过后台可以添加关于实体或者实体属性的错误消息:

            1)ModelState.AddModelError("", "This is all wrong!");         //当有错误产生时(即使是一个属性)就会显示

    2)ModelState.AddModelError("Title", "What a terrible name!");    //为属性Title添加错误消息

        与其相似的@Html.ValidationMessageFor(model => model.Nickname) 一般跟在一个需要填写的属性后面。

    5强类型Helper

        通过强类型Helper可以传递一个Lambda表达式来指定要呈现的实体属性。表达式的实体类型由View()传递过来,在视图中用@model指令 指定  类型。强类型Helper在原有Helper基础上加了一个"For"后缀。

         强类型Helper的好处:1)有智能提示

                            2)便于重构(在model 中更改了属性名称时,时用了强类型helper的Html可以进行自动更改)

    6 Helper和Model Metadata(元数据)

      帮助类不仅仅能够自动探测到ViewData的数据,还可以从元数据获益。如:@Html.Label("GenreId") 与之对应的HTLML代码是: <label     for="GenreId">Genre</label>。Genre元数据的定义:

                                      [DisplayName("Genre")]

                                      public int GenreId { get; set; }    

         可见HTML中的Genre就是从元数据的[DisplayName("Genre")]来的。

    7 模板辅助方法

          主要有两个:Html.Display 和 Html.Editor(对应的强类型方法Html.DisplayFor 和 Html.EditorFor)。好处是可以通过数据注解来改变生成的HTML。

        如:当模型的Title属性含[DataType(DataType.MultilineText)]注解时,当使用@Html.EditorFor(m=>m.Title) 时,会自动生成textarea控件。

        还有Html.DisplayForModel 和 Html.EditorForModel也是模板辅助方法。

    8.列举大部分的辅助方法

          a.输入编辑类

          TextBox(TextArea)    DropDownList(ListBox—可选择多项)          Label        Hidden        Password    RadioButton      CheckBox

          b.显示和渲染类

          1)ActionLink    RouteLink

          2)URL辅助方法

          @Url.Action(显示URL,不是链接)        @Url.Content(将程序相对路径转换为绝对路径)

          3)Html.Partial和Html.RenderPartial

          4)Html.Action和Html.RenderAction

  • 相关阅读:
    工业设计之美
    狠挖用户需求与用户分析——赫志中
    《必然》
    在一周内学会使用 AUTO CAD
    可控硅调光知识总结
    PADS Logic Decal、Layout Decal绘制
    BUCK-BOOST反激变压器设计
    RCC BUCK-BOOST变压器设计
    产品生产
    由《旧制度与大革命》提取的5个感触
  • 原文地址:https://www.cnblogs.com/hunji-fight/p/3821140.html
Copyright © 2020-2023  润新知