HtmlHelper总结

 

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

1实质

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

 

2自动实现HTML编码

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

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

 

 

3几乎全部的helper方法均可以添加一个控制HTML属性的参数

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

可是须要注意的是:1)当设置css class=""时 因为class是关键字须要 写做@class="" 继承

                 2)当属性名字中含"-"时,因为c#中命名不能含有"-",因此要写成"_",帮助方法能够自动转换get

4 Html.ValidationSummary

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

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

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

    与其类似的@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

相关文章
相关标签/搜索