HTML輔助方法


一、表單的使用:

  

 

 

   1、action和method屬性:

      (1)action 表示路徑、路由地址的意思;

      (2)method 表示表單傳值方式 get/post;

      (3)enctype   一般需要設置這個屬性來允許表單 提交多媒體類型

    

 

 

 二、HTML輔助方法

    1、HTML屬性的類型是System.Wbb.Mvc.HtmlHelp<dynamic>,除了系統自帶的輔助方法,我們還可以自定義輔助方法

    2、添加輸入元素

    (1)Html.TextBox和Html.TextArea

   

      

    (2)Html.Label

      

 

 

          (3)Html.DropDownList和Html.ListBox

       這兩個都是返回<select/>元素,DropDownList允許單項選擇,ListBox多項選擇。

        通常情況下,select元素有兩個作用

          1)展示可選擇的列表

          2)展現字段的當前值

       下拉列表需要一個包含所有可選項的SelectListItem對象集合,其中每一個SelectListItem對象中又包含有Text、Value和Selected三個屬性。

        

 

 

 

     

         技術分享圖片

 

         技術分享圖片

    (4)Html.ValidationMessage

       當ModelState字典中的某一特定字段出錯時,可以使用 ValidationMessage輔助方法來顯示相應的錯誤提示消息。

                          技術分享圖片

 

        

 

       (5)輔助方法、模型和視圖數據

            匹配數據

           使用ViewBag中的值來為TextBox輔助方法命名

            

 

              

            對象屬性

           

             技術分享圖片

             技術分享圖片

            技術分享圖片

 

          技術分享圖片

 

        強類型:

          技術分享圖片

          技術分享圖片

          技術分享圖片

           技術分享圖片

 

        如果我們想避免上面的自動查找數據,我們可以提供一個顯示的值。

            技術分享圖片

            技術分享圖片

            技術分享圖片

       6、強類型輔助方法

          強類型我們可以傳一個lambda表達式來顯示,我們的輔助方法都多個“For”

            

              技術分享圖片

              技術分享圖片

              技術分享圖片

      7、輔助方法和模型元數據      數據注解來改變顯示

          

          技術分享圖片

          技術分享圖片

          技術分享圖片

      8、模板輔助方法

          

8.模板輔助方法

 技術分享圖片

技術分享圖片

技術分享圖片

一般使用Editor代替TextBox

 

 9.輔助方法和ModelState

 ModelState存儲模型綁定期間檢測到的所有驗證錯誤,以及用戶提交用來跟新模型的原始值。

輔助方法使用名稱表達式作為鍵,在ModelState字典中進行查找。如果查找的值已在ModelState中,輔助方法就用ModelState中的值替換視圖數據中的當前值。,模型綁定失敗就會顯示錯誤。

 

10.其他輸入輔助方法

 技術分享圖片

技術分享圖片

技術分享圖片

 

 

 11.渲染輔助方法

  Html.ActionLink()和Html.RouteLink()

技術分享圖片

 

技術分享圖片

 

 12.URL輔助方法

 ①Action  ②Content   ③RouteUrl

 技術分享圖片

 

13.部分視圖輔助方法

使用部分視圖有以下優點:   1. 可以簡寫代碼。 2. 頁面代碼更加清晰、更好維護。

在視圖里有多種方法可以 加載部分視圖,包括: Partial() 、RenderPartial() 、 Action() 、RenderAction() 、 RenderPage() 方法

partial 與 RenderPartial 方法

Razor 語法: @Html.Partial() 與 @{Html.RenderPartial();}

區別:Partial 可以直接輸出內容,它內部是 將 html 內容轉換為 string 字符(MVCHtmlString),然后緩存起來,最后在一次性輸出到頁面。顯然,這個轉換的過程,會降低效率,所以通常使用 RenderPartial 代替。    指示抓取頁面類容,不能抓方法

技術分享圖片

技術分享圖片

在Partial的Action中傳遞一些數據,並在Partial的部分視圖中調用。

技術分享圖片

技術分享圖片

在Index視圖中加載Partial視圖。下面兩種方式都可以加載成功,但第二種效率更高,所以我們使用Html.RenderPartial加載視圖

技術分享圖片

技術分享圖片

運行以后頁面內容加載過來了,但並沒有加載到Action內部的ViewBag變量。

 技術分享圖片

RenderAction 與 Action 

Razor 語法:

@{Html.RenderAction();}與@Html.Action();

區別:Action 也是直接輸出,和 Partial 一樣,也存在一個轉換的過程。不如 RenderAction 直接輸出到當前 HttpContext 的效率高。 

除此之外,Action與Partial相比,Action訪問了控制器中的Action,執行了Action內部的業務。

 技術分享圖片

運行之后,ViewBag對象中的值也獲取到了

 技術分享圖片

RenderPage 與 RenderPartial

Razor 語法:

@{Html.RenderPartial();}  與 @RenderPage()

區別:也可以使用 RenderPage 來呈現部分,但它不能使用 原來視圖的 Model 和 ViewData ,只能通過參數來傳遞。而 RenderPartial 可以使用原來視圖的 Model 和 ViewData。

添加代碼並運行,@RenderPage也並沒有執行Action。

技術分享圖片

 

 技術分享圖片

 

14.Encode與Raw

Html.Encode用於編碼頁面上的特殊字符。 (不會彈對話框,進行了編碼)  

標准寫法: <%= Html.Encode(ViewData["script"]) %>

簡單寫法: <%: ViewData["script"] %> (主)

 

Html.Raw將字符串按原樣輸出在頁面上。(會在頁面上彈對話框)

標准寫法: <%= Html.Raw(ViewData["script"]) %>

簡單寫法: <%= ViewData["script"] %>   (主)

 

<%:   %> 會對字符串進行編碼

<%=  %> 把字符串完整的輸出在頁面上,不編碼

 

除了自帶的這些賦值方法,我們也可以自定義,這個后面介紹。

 


免責聲明!

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



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