@Html幫助器簡單說明,記錄些基本的跟HTML中對應的@html幫助器,@Html基本包含了html中的表單控件和經常使用Html
在@Html中,帶有For的主要是針對強類型的Html類型。
用於說明@Html中標籤,定義Student對象用於輔助說明,
- public class Student
- {
-
-
-
-
- [DisplayName("姓名")]
- public string Name
- {
- get;
- set;
- }
-
-
-
-
-
- public int Age
- {
- get;
- set;
- }
- }
在cshtml頁面定義@model Student
Label標籤,在LabelExtensions類中實現
一、 @Html.Label()
返回一個 HTML label 元素和由指定表達式表示的屬性的屬性名稱。
參數:string expression,string labelText
expression:一個表達式表示要顯示的屬性
labelText:顯示文字
例:
- @Html.Label("weight") 輸出:<label for="weight">weight</label>
- abel("name","姓名") 輸出:<label for="name">姓名</label>
二、 @Html.LabelFor()
和@Html.Label()相似,只是主要針對強類型
例:
- @Html.LabelFor(model=>mode.Name) 輸出: <label for="Name">Name</label>
- @Html.LabelFor(model=>mode.Name,"姓名") 輸出:<label for="name">姓名</label>
- 若是在上面實體添加[DisplayName("姓名")]特性(引用System.ComponentModel;)則會顯示:
- <label for="Name">姓名</label>用於顯示漢字很方便
三、 @Html.LabelForModel()
例:@Html.LabelForModel("name") 輸出: <label for="">name</label>
Editor標籤,表示應用程序中的Input表單控件,在EditorExtensions實現
一、 @Html.Editor()
返回一個由表達式表示的對象中的每一個屬性所對應的input元素
例:
- a、@Html.Editor("name") 輸出;<input class="text-box single-line" id="name" name="name" type="text" value="" />
b、在加載的時候爲input初始化值,這裏用asp.net MVC新增的ViewBag屬性;
- @{
- ViewBag.NameValue="張三"; // NameValue爲動態類型
- 或者
- ViewData["NameValue"]="張三";
- }
- @Html.Editor("NameValue") 輸出<input class="text-box single-line" id="NameValue" name="NameValue" type="text" value="張三" />
c、@Html.Editor("name",Model.Name) 第二個參數爲object additionalViewData 參數 主要爲視圖模型的數據 (Model爲System.Web.Mvc.Model對象,在加載頁面引用@model Student 對象), 但不知道這樣Input爲何沒顯示默認值。不知道不是不asp.net mvc3中不支持了,但願知道的給予說明下。 二、 @Html.EditorFor() 返回一個由表達式表示的對象中的每一個屬性所對應的input元素,主要是針對強類型,通常這種方式用得多些 a、@Html.EditorFor(mode=>mode.Name) 若是返回的View給Student實體賦予值,則輸出輸 出<input class="text-box single-line" id="Name" name="Name" type="text" value="默認值" />不然Value爲""; b、@Html.EditorFor(mode=>mode.Name,"templateName") 第二個參數爲模版名稱,模版的定義: 首先在目錄View/Shared/創建文件夾EditorTemplates/templateName.cshtml 即:View/Shared/EditorTemplates/templateName.cshtml 注:這務必用EditorTemplates做爲文件夾 templateName.cshtml代碼爲: @Html.DropDownList("",new SelectList(new []{"1","2","3"}))表示一個值爲1,2,3的下拉列表 這時就能夠調用@Html.EditorFor(mode=>mode.Name,"templateName"),則顯示成一個下拉列表,若是模版中設置的一個文本框則顯示成文本框。 同時,也能夠在實體Student中的Name屬性加上[UIHint("templateName")]特性 若是加上這個則可在調用的時候不用顯示指定模版名稱 用@Html.EditorFor(mode=>mode.Name)便可顯示成下拉框,同時全部用這個字段的都將變成下拉列表 至關與Html中的Input控件 @Html.EditorFor(model=>model.Age) 頁面顯示爲: <input id="Age" name="Age" type="text" value="" /> 三、 @Html.EditorForModel() 若是使用默認值,不帶任何參數,則循環顯示Model中全部的信息,不過須要放在循環中 如:<input class="text-box single-line" id="Name" name="Name" type="text" value="" /> <input class="text-box single-line" id="Age" name="Age" type="text" value="" />