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

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM