Asp.net MVC中關於@Html標籤Label、Editor使用

Asp.net MVC中關於@Html標籤Label、Editor使用

分類: asp.net MVC 4578人閱讀 評論(0) 收藏 舉報
@Html幫助器簡單說明,記錄些基本的跟HTML中對應的@html幫助器,@Html基本包含了html中的表單控件和經常使用Html
在@Html中,帶有For的主要是針對強類型的Html類型。
用於說明@Html中標籤,定義Student對象用於輔助說明,
[csharp] view plain copy
  1. public class Student  
  2. {  
  3.   /// <summary>  
  4.         /// 姓名  
  5.         /// </summary>  
  6.         ///   
  7.         [DisplayName("姓名")]  
  8.         public string Name  
  9.         {  
  10.             get;  
  11.             set;  
  12.         }  
  13.   
  14.   
  15.         /// <summary>  
  16.         /// 年齡  
  17.         /// </summary>  
  18.         public int Age  
  19.         {  
  20.             get;  
  21.             set;  
  22.         }  
  23. }  


在cshtml頁面定義@model Student
Label標籤,在LabelExtensions類中實現
一、 @Html.Label()
返回一個 HTML label 元素和由指定表達式表示的屬性的屬性名稱。
參數:string expression,string labelText
expression:一個表達式表示要顯示的屬性
labelText:顯示文字
例: 
[html] view plain copy
  1. @Html.Label("weight")       輸出:<label for="weight">weight</label>  
  2. abel("name","姓名")  輸出:<label for="name">姓名</label>  

二、 @Html.LabelFor()
和@Html.Label()相似,只是主要針對強類型
例:
[html] view plain copy
  1.        @Html.LabelFor(model=>mode.Name) 輸出:  <label for="Name">Name</label>  
  2. @Html.LabelFor(model=>mode.Name,"姓名") 輸出:<label for="name">姓名</label>  
  3. 若是在上面實體添加[DisplayName("姓名")]特性(引用System.ComponentModel;)則會顯示:  
  4. <label for="Name">姓名</label>用於顯示漢字很方便  

三、 @Html.LabelForModel()
例:@Html.LabelForModel("name") 輸出: <label for="">name</label>

Editor標籤,表示應用程序中的Input表單控件,在EditorExtensions實現
一、 @Html.Editor() 
返回一個由表達式表示的對象中的每一個屬性所對應的input元素
例:
[html] view plain copy
  1. a、@Html.Editor("name") 輸出;<input class="text-box single-line" id="name" name="name" type="text" value="" />  

b、在加載的時候爲input初始化值,這裏用asp.net MVC新增的ViewBag屬性;
[html] view plain copy
  1.      @{  
  2.     ViewBag.NameValue="張三"; // NameValue爲動態類型  
  3.     或者  
  4.     ViewData["NameValue"]="張三";  
  5. }  
  6. @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="" />
相關文章
相關標籤/搜索