一、表單的使用:
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"] %> (主)
<%: %> 會對字符串進行編碼
<%= %> 把字符串完整的輸出在頁面上,不編碼
除了自帶的這些賦值方法,我們也可以自定義,這個后面介紹。