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

相關文章
相關標籤/搜索